假设我的项目中有 3 个文件:
- 数据模型文件,处理核心数据和获取信息
- 视图控制器 1
- 视图控制器 2
在模型文件中,我得到结果如下:
- (NSArray *) getColonyData
{
NSManagedObjectContext *cxt = [self managedObjectContext];
NSEntityDescription *colonyDesc = [NSEntityDescription entityForName:@"Colony" inManagedObjectContext:cxt];
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:colonyDesc];
NSError *error;
NSArray *colonyResults = [cxt executeFetchRequest:request error:&error];
return colonyResults;
}
我在第一个 viewController 的 viewDidLoad 部分运行这部分代码,我得到了正确的结果:
NSArray *colonyResults = [model getColonyData];
if (colonyResults != nil)
{
colonyName.text = [[colonyResults objectAtIndex:0] valueForKey:@"name"];
}
else
{
colonyName.text = @"nothing setup yet";
}
然后,当我执行完全相同的代码(当然更新不同的 UI 元素)时,我通过 segue 移动到第二个 viewController。但这一次结果是 nil。我在这里做错了什么?我应该先手动发布结果吗?没有出现其他错误。谢谢。