プロジェクトに3つのファイルがあると仮定します。
- データモデルファイル、コアデータの処理と情報の取得
- viewController 1
- viewController 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";
}
次に、まったく同じコードを実行するときに、セグエを介して2番目のviewControllerに移動します(もちろん、異なるUI要素を更新します)。しかし、今回の結果はnilです。私はここで何が間違っているのですか?最初に結果を手動でリリースする必要がありますか?他のエラーは表示されません。ありがとう。