僵尸由 [数组计数] 发送消息
我有一个 ivar 可变数组,我在 viewDidLoad 中设置如下:
names = [NSMutableArray arrayWithCapacity:30];
[names addObject:@"Joe"];
[names addObject:@"Dom"];
[names addObject:@"Bob"];
然后在稍后的方法中,点击按钮,我执行以下操作,但该数组似乎过度释放...并显示 Zombie 消息:
int r = arc4random() % [names count];
NSLog(@"%d", r);
我该如何解决此问题?
谢谢。
I have an ivar mutable array which i setup in viewDidLoad as follows:
names = [NSMutableArray arrayWithCapacity:30];
[names addObject:@"Joe"];
[names addObject:@"Dom"];
[names addObject:@"Bob"];
Then in a later method, on tap of a button, i do the following, but the array appears to be overreleasing... with Zombie messaged:
int r = arc4random() % [names count];
NSLog(@"%d", r);
How do i fix this?
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
+arrayWithCapacity:
将返回一个自动释放的对象,即在“稍后的方法”中该对象可能已经被释放。您需要保留此对象以使其“稍后”可用。(或者,
)
不要忘记在
-dealloc
中释放它。+arrayWithCapacity:
will return an auto-released object, i.e. in the "later method" this object is likely already deallocated. You need to retain this object to make it available "later".(alternatively,
)
Don't forget to release it in
-dealloc
.