在 ViewController 之间传递 NSManagedObjects 是个坏主意吗?我有一个 iPad 应用程序,我似乎遇到了随机的错误访问崩溃和 sigbart 错误。
这些 NSManageObjects 来自 CoreData,我想知道它们是否有时会从内存中丢失并导致这种情况。我希望只是将它们从 Controller 传递到 Controller ,以避免在每个 View Controller 上进行提取。
最佳答案
听起来这是一个糟糕的对象内存分配实践问题。只要您的应用程序不是多线程的并且只有一个 managedObjectContext(典型),您就可以在 VeiwController 之间传递这些 NSManagedObjects 没有问题。
可能发生的情况是,您将引用从一个 ViewController 传递到另一个 ViewController,而没有使用保留消息增加它的引用计数。这可能会变得冒险。
我建议在您的 ViewController 上保留一个属性,例如
@property (nonatomic, retain) NSManagedObject *yourObject;
然后,当你得到你的托管对象时,保持这样:
self.yourObject = ...;
...当你想将它传递给另一个 View Controller 时:
otherViewController.yourObject = ...;
它将负责为您设置保留/释放。
关于iphone - 在 View Controller 之间传递 NSManagedObject - 随机错误访问错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4330373/