【发布时间】:2012-01-03 17:55:50
【问题描述】:
如果我将 NSManagedObject 传递给 UIViewController,则 NSManagedObject 变为 null。我能看到的唯一解决方法是在我想将托管对象传递给的每个视图控制器中使用一个获取请求(有几个),但这似乎非常笨拙并且容易出错。
我传递托管对象的方式只是说:
viewController.subclassedManagedObject = self.subclassedManagedObject;
它在 self 中有效,但在 viewController 中为 null。我不明白为什么。任何见解将不胜感激!
非常感谢
编辑:
添加更多细节和清晰度:我有一个强大的子类 managedObject 属性,称为 viewController 中的预订。
@property (nonatomic, strong) Booking *booking;
这也是我设置 UIManagedDocument 等的 viewController。这一切都很好。我想将此 managedObject 传递给我这样做的 TableViewController 实例:
Booking *booking = [NSEntityDescription insertNewObjectForEntityForName:@"Booking" inManagedObjectContext:self.managedObjectContext];
[self.bookingDatabase saveToURL:self.bookingDatabase.fileURL
forSaveOperation:UIDocumentSaveForOverwriting
completionHandler:^(BOOL success) {
if (!success)
{
NSLog(@"didn't work");
}}];
TableViewController *tableViewController = segue.destinationViewController;
tableViewController.managedObjectContext = self.managedObjectContext;
tableViewController.booking = self.booking;
tableViewController.bookingDatabase = self.bookingDatabase;
TableViewController 中的属性预订我试过既弱又强,都不起作用。目前是这样的:
@property (nonatomic, weak) Booking *booking;
再次感谢
【问题讨论】:
-
你能发布更多你的代码吗?你是如何展示这个视图控制器的?该属性是否设置为保留?
-
感谢您的浏览。是的,我在原来的帖子中发布了更多内容。
标签: objective-c cocoa-touch core-data ios5