【发布时间】:2015-02-19 04:52:58
【问题描述】:
我在这里遇到了一个奇怪的情况。我有一个私人 NSArray 持有我的数据的 NSDictionary。一旦我移出 viewDidLoad 的范围(即进入另一个方法的范围),NSDictionary 就会自动解除分配,并且应用程序会因“发送到解除分配的实例的消息”而崩溃。将 NSArray 声明为强属性并不能解决问题。如何使 NSArray 保留其对象?
【问题讨论】:
标签: nsarray nsdictionary
我在这里遇到了一个奇怪的情况。我有一个私人 NSArray 持有我的数据的 NSDictionary。一旦我移出 viewDidLoad 的范围(即进入另一个方法的范围),NSDictionary 就会自动解除分配,并且应用程序会因“发送到解除分配的实例的消息”而崩溃。将 NSArray 声明为强属性并不能解决问题。如何使 NSArray 保留其对象?
【问题讨论】:
标签: nsarray nsdictionary
问题解决了。我想我实际上并不拥有包含在我的数组中的字典,因此它在 viewDidLoad 的范围之外被释放。
这是任何中级 iOS 开发人员的必读之书:
https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/MemoryMgmt/MemoryMgmt.pdf
【讨论】: