Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c NSMutableArray属性是否自动删除?_Objective C - Fatal编程技术网

Objective c NSMutableArray属性是否自动删除?

Objective c NSMutableArray属性是否自动删除?,objective-c,Objective C,我的大脑模型中定义了一个NSMutableArray属性 @property (retain, nonatomic) NSMutableArray *stockColors; 可变数组在Brain初始化期间被对象填充 在我的视图控制器viewDidLoad函数中 *Brain brain = [[Brain alloc]init]; NSLog(@"Brain stockColors is %@", brain.stockColors); 这工作得很好,并且按照预期记录内存地址 然后在同一个

我的大脑模型中定义了一个NSMutableArray属性

@property (retain, nonatomic) NSMutableArray *stockColors;
可变数组在Brain初始化期间被对象填充

在我的视图控制器viewDidLoad函数中

*Brain brain = [[Brain alloc]init];
NSLog(@"Brain stockColors is %@", brain.stockColors);
这工作得很好,并且按照预期记录内存地址

然后在同一个视图控制器中,我声明了一个“addButtonPressed”操作链接到.xib中的UIButton

在我的addbuttonPressed操作中,如果我尝试执行完全相同的日志

NSLog(@"Brain stockColors is %@", brain.stockColors);
程序崩溃了

如果我这样做

NSLog(@"Brain stockColors is %@", brain);
我得到了大脑的地址。。。所以大脑是存在的。。但由于某种原因,当我进入addButtonPressed动作时,brain.StockColor似乎正在被释放或其他什么

谁能解释一下是什么导致它自动释放


考虑到您遗漏了重要的代码,谢谢。。。实际的
Brain
init调用我要说的是,当您创建可变数组时,您分配给的是实例变量,而不是属性

//The Brain init method should contain something similar to this
self.stockColor = [NSMutableArray array];

//stockColor = [NSMutableArray array]; would be incorrect and get autoreleased

我不明白这一点。什么是
Brain
类?为什么不是
大脑*Brain
?使用
stockColors
IBAction
的类名是什么?你能告诉我们
Brain
的init方法吗?除了
*Brain-Brain
是无效语法之外,变量
Brain
甚至不应该存在于
viewDidLoad
之外,因为它是一个局部变量,所以在那里写
brain.stockColors
不应该编译。如果你发布真实的代码,而不是你在web浏览器中编写的代码,这些代码有20个不相关的问题,甚至可能不包括导致你悲伤的实际错误,这会更有帮助。这是正确的!一旦我在init中添加了“self”,它就成功了!