我有一个 NSMutableArray
作为类的成员变量。
在.h
文件中:
@interface bleh {
NSMutableArray *list;
}
@property (readonly, assign) NSMutableArray *list;
@end
在.m
文件中:
@implementation bleh
@synthesize list;
-(void)init;
{
list = [NSMutableArray arrayWithCapacity:30];
}
@end
现在,我并不是一个真正的 Objective-C 程序员,所以也许我错过了一些细微差别,但是当我执行以下操作时:
NSMutableString *listItem = [NSMutableString stringWithString:@"Foobar"];
[list addObject:listItem];
我的行为很奇怪。也就是说,我使用它来保留我最终想要附加到电子邮件的文件列表,然后打开选择器。我收到了 SIGABRT,在调试时,我发现每当我对列表进行操作时,我什么也得不到。 addObject 消息根本不会增加 NSMutableArray
的大小。
我错过了什么吗?有人可以向我展示设置 NSMutableArray
以便在 Objective C 的类中进行操作的完整实现吗?
谢谢。
PS - 假设我足够聪明,可以将对 NSMutableArray
的操作放入包含成员变量的类的成员函数中。
最佳答案
在最新版本的 SDK 中,arrayWithCapacity 是不好的做法。 但在您的代码中,您创建了一个没有人是所有者的数组,请正确地夹住您的数组。
不要忘记初始化你的数组
NSMutableArray *array = [[NSMutableArray alloc] init];
修复(只读,分配),
关于iphone - NSMutableArrays,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1335424/