在我的单例中初始化NSMutableArray时出现问题

6

我遇到了一个奇怪的错误,但我无法找出原因。这个错误发生在一个使用单例模式创建的类中:

- (NSMutableArray *) getCurrentClasses
{
    NSMutableArray *current_classes = [[NSMutableArray init] alloc];
    NSLog([NSString stringWithFormat:@"%d", [current_classes count]]);
    ...
}

当我运行这个程序时,即使我刚刚初始化了current_classes,但日志中仍会出现以下错误:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSCFArray count]: method sent to an uninitialized mutable array object'
有人知道这是为什么吗?我在最后一行刚刚初始化它。
谢谢。
1个回答

27

你混淆了alloc/init的顺序。alloc应该先调用。正确的顺序是:

NSMutableArray *current_classes = [[NSMutableArray alloc] init];

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接