AppDelegate から以下のメソッドを呼び出しています。Fetch Request は iPad デバイスで 0 レコードを返します。アドバイスしてください。シミュレーターでレコードが正しく返されます。渡された引数がデバイスとシミュレータの両方で nil でないことを確認しました。
+ (Movie * ) movieWithID : (NSString * ) ID withObjectContext:(NSManagedObjectContext *) context
{
Movie *movie= nil;
NSFetchRequest *request =[[NSFetchRequest alloc]init];
NSLog(@"ID : %@ Context : %@", ID,context);
// Context and ID are not nil on both simulator and device
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Movie" inManagedObjectContext:context];
[request setEntity:entity];
NSError *error =nil;
NSArray * fetchResults = [context executeFetchRequest:request error:&error];
//0 records are returned on the device
//Correct number of records are returned on the simulator
if (entity && request) {
NSLog(@"Fetch Count %d",[fetchResults count]);
}
else
{
NSLog(@"Entity is nil");
}
request.predicate = [NSPredicate predicateWithFormat:@"id like %@",ID];
fetchResults = [context executeFetchRequest:request error:&error];
if ([fetchResults count] > 1) {
NSLog(@"Fetched Results > 1");
}
if (!fetchResults ) {
NSLog(@"Fetch Failed");
}
else if ([fetchResults count]== 0) {
NSLog(@"No movie results %@",error);
}
else if ([fetchResults count] ==1) {
movie= [fetchResults lastObject];
}
return movie;
}