无法识别的选择器发送到实例(SIG_ABRT),将 NSString 添加到 NSArray
我在这里脑洞大开。所以我有一个方法可以查看 NSMutableArray,它是另一个类的属性。这些对象是 NSString。在调试器中,我看到它显示 NSCFString 表示我试图添加到数组中的对象。所以我基本上这样做:
- (NSArray *)GetFileNames {
NSMutableArray *fileNameArray = [[[NSArray alloc] init] autorelease];
for (NSString *str in self.ParentVC.SelectedOptions) {
[fileNameArray addObject:str];
NSLog(@"%@", str); // this works fine
}
return fileNameArray;
}
我在其他地方调用这个函数:
NSArray *fileNameArray = [[NSArray alloc] initWithArray:[self GetFileNames]];
但由于某种原因,我将无法识别的选择器发送到实例,它停在这一行。我做错了什么吗?有什么建议可以尝试解决问题吗?我已经检查了 self.ParentVC.SelectedOptions 并且显示了我想要的 NSCFString 或 NSCFStrings 。为此我可以在 Instruments 中做些什么吗?谢谢。
I'm brainfarting here. So I have a method that looks through a NSMutableArray that is a property of another class. The objects are NSString. In the debugger I see it says NSCFString for the object I'm trying to add to an array. So I basically do this:
- (NSArray *)GetFileNames {
NSMutableArray *fileNameArray = [[[NSArray alloc] init] autorelease];
for (NSString *str in self.ParentVC.SelectedOptions) {
[fileNameArray addObject:str];
NSLog(@"%@", str); // this works fine
}
return fileNameArray;
}
And I call this function somewhere else by:
NSArray *fileNameArray = [[NSArray alloc] initWithArray:[self GetFileNames]];
But for some reason, I get the unrecognized selector sent to instance and it stops on this line. Am I doing something wrong? Any tips to try to troubleshoot the problem? I already checked the self.ParentVC.SelectedOptions and that shows my NSCFString or NSCFStrings I want. Anything I can do in Instruments for this? Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
将第二行替换为
对象的真实类型是您分配的类型,而不是您声明的类型。在发布的代码中,数组是不可变的。
Replace the second line with
The real type of the object is what you allocate, not what you declare. In the posted code, the array is not mutable.
这一行:
应该是
否则你将创建一个不可变数组。
This line:
Should be
Otherwise you're creating an immutable array.