iphone - NSMutableArrays

标签 iphone objective-c

我有一个 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/

相关文章:

iphone - 在实例变量自动释放的控制台 (po) 中打印值

iphone - iphone 中的自定义前端将在所有其他应用程序中工作

objective-c - 在 Objective-C 中以编程方式更改颜色深度

iphone - 不兼容的 Objective C 类型

objective-c - 难以实现 NSUndoManager 重做功能

ios - 如何在 Objective C 中编写计算初始化器?

ios - 不断增加应用程序内存(IOAccelResource)

ios - 由于 XCode 6.3 -> Nib 无法加载

iphone - 按钮中的 ImageView 不出现

iphone - NSFormatter 和 NSdate 问题。获取 nsdate 对象为 null