gpt4 book ai didi

ios - Core Data Fetch Request 在模拟器上运行,但在设备上不运行

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:43:48 29 4
gpt4 key购买 nike

我正在从 AppDelegate 调用以下方法。 Fetch Request 在 iPad 设备上返回 0 条记录,请指教。记录在模拟器上正确返回。我已经确认传递的参数在设备和模拟器上都不是零。

+ (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;

}

最佳答案

原因肯定是查询的店铺在iPad和模拟器上不一样。确保将任何准备好的 SQLite 存储正确复制到设备,并验证您尝试获取的数据确实存在。

测试此方法的一种方法是先在代码中插入数据。 - 然后您可以检查您的提取请求是否有效。

关于ios - Core Data Fetch Request 在模拟器上运行,但在设备上不运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13610707/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com