
HVBAppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];NSManagedobjectContext *context = [appDelegate managedobjectContext];NSEntityDescription *entityDesc = [NSEntityDescription entityForname:@"Events" inManagedobjectContext:context];NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];[fetchRequest setEntity:entityDesc];NSError *error;NSArray *objects = [context executeFetchRequest:fetchRequest error:&error];// [objects count] = 1 but objects[0] = nil// and the following line crashes of courseNSMutableDictionary *data = objects[0][@"data"];
知道我做错了什么吗?谢谢!
(请注意,我已经设置了一个带有NSDictionary属性和其他属性的Events类.)
以下是我设置实体的方法:
Events.h:
Events.m:
解决方法 我弄清楚发生了什么:首先,’对象’有一行但显得“空”的原因是因为这是默认行为.除非您通过发送setReturnsObjectsAsFaults消息进行更改,否则在您明确要求之前不会检索值:
[fetchRequest setReturnsObjectsAsFaults:NO];
注意,NSLogging对象没有这个产生“data:”.
其次,最重要的是,“对象”不是NSDictionarys或NSMutableDictionarys的NSArray.因此,虽然我可以用[objects [0]替换[objects objectAtIndex:0]“,但我不能用[objects [0] [@”created“]替换[objects [0] valueForKey:@”created“].这就是导致崩溃的原因.
希望这有助于某人!
总结以上是内存溢出为你收集整理的iOS Core Data executeFetchRequest返回空对象全部内容,希望文章能够帮你解决iOS Core Data executeFetchRequest返回空对象所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)