为什么我的NSMutableArray返回nill?

时间:2010-04-13 20:46:18

标签: cocoa

我有一个非常简单的任务: 将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?

}

1 个答案:

答案 0 :(得分:6)

你在某处做过以下事情吗?

myArray = [[NSMutableArray alloc] init];

如果你不做那样的话,myArray只是一个空指针,而addObject调用只会默默地做什么。


编辑:这里的想法是,如果您只有一个指针变量,则不会创建NSMutableArray对象。在调用 alloc init 之前,没有对象。

查看this CocoaDev page以获取有关NSMutableArray及其用途的更多信息。 Apple documentation包含有关NSMutableArray方法的信息。


此外,这与this SO question基本相同。