gpt4 book ai didi

objective-c - MagicalRecord 未在获取请求中返回 NSDictionary

转载 作者:太空狗 更新时间:2023-10-30 03:44:28 27 4
gpt4 key购买 nike

这是我的代码:

NSPredicate *filter = [NSPredicate predicateWithFormat:@"aMostRecentFlag == 1"];  //  find old records
NSFetchRequest *fetchRequest = [PreferenceData MR_requestAllWithPredicate: filter];
[fetchRequest setResultType: NSDictionaryResultType];

NSDictionary *preferenceData = [PreferenceData MR_executeFetchRequest:fetchRequest];

我从构建中收到警告:

Incompatible pointer types initializing 'NSDictionary *' with an expression of type 'NSArray *'

这表明 MR 没有按照记录返回 NSDictionary;我的代码有问题吗?顺便说一下,尽管有一条本应返回的记录,但提取请求没有返回任何内容。

最佳答案

看来评论已经给出了答案,但我不确定每个人都清楚。

获取请求返回结果数组。通常,表示结果的对象将是模型中指定的类。如果您正在子类化 NSManagedObject(正如您应该的那样),它将是子类。如果不是,它将是一个看起来很普通的 NSManagedObject,您可以通过 valueForKey: 访问其属性。

但是,您可以要求将结果作为字典返回。这并不意味着 executeFetchRequest:error: 方法返回字典。相反,这意味着数组中的每个对象都是一个字典。

无论您获得哪种格式的结果,您都必须将您关心的对象从数组中拉出。一个常见的习惯用法是简单地将 .lastObject.firstObject 附加到 executeFetchRequest:error: 调用的末尾。像这样的东西:

MyObject *object = [context executeFetchRequest:request error:NULL].firstObject;

Magical Record 只不过是围绕核心数据类的奇特包装器。它提供了方便的方法,但 Core Data 的所有常用语义仍然有效。

关于objective-c - MagicalRecord 未在获取请求中返回 NSDictionary,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33355358/

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