专用NSArray中的NSDictionary在viewDidLoad范围之外被释放



我遇到了一个奇怪的情况。我有一个私人的NSArray,里面有我的数据的NSDictionary。一旦我移出viewDidLoad的范围(即进入另一个方法的范围),NSDictionary就会自动解除分配,应用程序就会崩溃,并显示"消息发送到解除分配的实例"。将NSArray声明为强属性并不能解决问题。如何使NSArray保留其对象?

问题已解决。我想我实际上并不拥有数组中包含的字典,因此它在viewDidLoad的范围之外被释放。

这是任何中级iOS开发者的必读书目:

https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/MemoryMgmt/MemoryMgmt.pdf

最新更新