我有一个非常简单的任务: 将textField的内容添加到NSMutableArray。问题是数组返回nill。我相信它与我正在使用的数组被声明为实例变量这一事实有关。
/*
IBOutlet NSTextField *textField;
IBOutlet NSTabView *tableView;
IBOutlet NSButton *button;
NSMutableArray *myArray;
*/
#import "AppController.h"
@implementation AppController
-(IBAction)addNewItem:(id)sender
{
NSString *string = [textField stringValue];
NSLog(@"%@",string);
[myArray addObject:string];
NSLog(@"%d",[myArray count]);//this outputs 0 why is that?
}
答案 0 :(得分:6)
你在某处做过以下事情吗?
myArray = [[NSMutableArray alloc] init];
如果你不做那样的话,myArray只是一个空指针,而addObject调用只会默默地做什么。
编辑:这里的想法是,如果您只有一个指针变量,则不会创建NSMutableArray对象。在调用 alloc 和 init 之前,没有对象。
查看this CocoaDev page以获取有关NSMutableArray及其用途的更多信息。 Apple documentation包含有关NSMutableArray方法的信息。
此外,这与this SO question基本相同。