iphone - 在 View Controller 之间传递 NSManagedObject - 随机错误访问错误

标签 iphone objective-c ipad

在 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/

相关文章:

ios - 不同 iPhone 上的动画

objective-c - performSelectorOnMainThread : 实现的底层细节

iphone - 画图应用的 OpenGL ES 内容截图

ios - 我在 iPad 应用程序中实现 Oracle UCM 是否有任何用于登录身份验证的 Web 服务?

ios - 在我的自定义按钮中打开 Airplay 弹出窗口

ios - 对于一百层动画来说,OpenGL ES 的性能会比 CoreAnimation 更好吗?

ios - 如何引用和声明 UINavigationController 的自定义方法

iphone - ios添加UICollectionView reuseIdentifier报错

ios - iOS 应用程序中用于登录系统的标准程序是什么?

iOS:检测附近的应用用户