Sle*_*lee 3 iphone objective-c ipad
在ViewControllers之间传递NSManagedObjects是个坏主意吗?我有一个iPad应用程序,我似乎遇到随机坏访问崩溃和sigbart错误.
这些NSManageObjects来自CoreData,我想知道它们是否有时会丢失内存而导致这种情况.我希望只是将它们从控制器传递给控制器,以避免在每个viewcontroller上进行获取.
听起来这是一个糟糕的对象内存分配实践.只要您没有多线程化您的应用程序并且只有一个managedObjectContext(典型),您可以在VeiwControllers之间传递这些NSManagedObjects没问题.
可能发生的是你将引用从一个ViewController传递给另一个ViewController而不用使用retain消息增加它的引用计数.这可能会有点冒险.
我建议你在ViewControllers上有一个retain属性,比如
@property (nonatomic, retain) NSManagedObject *yourObject;
Run Code Online (Sandbox Code Playgroud)
然后,当您获得托管对象时,请保持这样:
self.yourObject = ...;
Run Code Online (Sandbox Code Playgroud)
...当你想将它传递给另一个视图控制器时:
otherViewController.yourObject = ...;
Run Code Online (Sandbox Code Playgroud)
它将负责为您设置保留/释放.
| 归档时间: |
|
| 查看次数: |
2672 次 |
| 最近记录: |