- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设我有这样的 JSON
:
{
"hits": 4056,
"books": [
{
"name": "Book 1"
},
{
"name": "Book 2"
},
{
"name": "Book 3"
}
]
}
我想将此响应映射到 BooksResponse
对象:
@interface BooksResponse
@property (nonatomic, assign) NSInteger hits;
@property (nonatomic, strong) NSArray* books;
@end
其中 books 属性是 CoreData
Book 对象的数组。我正在使用 RKObjectEntity
像这样映射 BooksResponse
:
RKObjectMapping* booksResponseMapping = [RKObjectMapping mappingForClass:[BooksResponse class]];
[booksResponseMapping addAttributeMappingsFromDictionary:@{
@"hits" : @"hits"
}];
[booksResponseMapping addPropertyMapping:[RKRelationshipMapping
relationshipMappingFromKeyPath:@"books"
toKeyPath:@"books"
withMapping:[self booksMapping]]];
而 booksMapping 是这样实现的:
RKEntityMapping* bookMapping = [RKEntityMapping mappingForEntityForName:@"Book"
inManagedObjectStore:[self managedObjectStore]];
[bookMapping addAttributeMappingsFromDictionary:@{
@"name" : @"name"
}];
但是每当 RestKit
尝试执行映射时就会发生崩溃:
CoreData: error: Failed to call designated initializer on NSManagedObject class 'Book'
我检查过,在执行期间 ManagedObjectStore
存在于 RKObjectManager
实例上。应用程序卡在类 RKMappingOperation:355
on line
id currentValue = [self.destinationObject valueForKeyPath:keyPath];
有没有一种方法可以在普通 objectiveC 对象和 NSManagedObject
之间建立关系,以便只有 JSON
响应的一部分保留在 CoreData
中?
最佳答案
这就是RKObjectRequestOperation
和RKManagedObjectRequestOperation
的区别。因为你只有 1 个响应描述符并且它匹配一个对象(不是托管对象),RestKit 将使用 RKObjectRequestOperation
。当它这样做时,托管对象存储在映射期间不可用,因此无法创建托管对象。
解决方法:
不使用 1 个响应描述符,而是使用 2 个。第一个只是创建 BooksResponse
并映射 hits
。第二个创建 Book
并映射 name
。
操作完成后,您将获得一个映射响应,其字典包含 2 个键:null 和“books”。 null 键包含 BooksResponse
实例,“books”键包含 Book
实例。您现在可以更新 BooksResponse
实例来填充关系。
请注意,映射响应中的键对应于 2 个响应描述符中指定的键路径。
关于ios - RKObjectMapping 和 RKEntityMapping 的关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21021211/
我没有回应: { "orders": [ { "date": "2013-11-18T13:00:39.000Z", "state": "new", "
请帮助使用 RestKit 进行集合映射,我不知道如何做到这一点。 我的 JSON 就像 { "result":{ "success":"1", "message":"You logg
我是 RestKit 的新手,正在尝试映射一个 json 对象,其中包含我的模型的对象数组。我已经调试并发现响应命中我的服务器-> json 返回-> RestKit 说映射成功并且我映射了 1 个对
我正在使用 RestKit iOS 包来允许用户从他们拥有的帐户中提取信息。下面的代码在第一次通过时完美运行。但是,如果我第二次尝试使用不同的用户名和密码,它只会加载第一次映射调用中的信息。此外,当第
我正在尝试使用 RKObjectMapping 执行对象映射。 这是我的 JSON 示例: { "notification": { "created_at":
所以,我有一个 api 调用,它将以下面的格式输出一些原始 json... 有点乱,但我只对此 json 的 Mapping 部分感兴趣。如果我能够访问原始数据,我会将 json 序列化为我想要迭代的
我正在使用 RestKit 的对象映射将 JSON 数据映射到对象。 是否可以将纬度和经度 JSON 属性映射到 CLLocation我的 Objective-C 类中的变量? JSON: { "it
假设我有这样的 JSON: { "hits": 4056, "books": [ { "name": "Book 1" },
我有一个名为 Activity 的 swift 模型,它可以选择附加一个 coordinate。 import MapKit class Activity: NSObject { var co
我“pod update”,现在我的RestKit版本是0.25.0,我的RKValueTransformers是1.1.2,出现错误“RKObjectMapping.h”not found。 Res
我想在嵌套的 RLMObject 中设置相同的主键。 如何使用 RKObjectMapping 设置相同的 id? 首先,我制作了以下 json 文件。 JSON 文件 { "id": 1 "
如何使用 RestKit RKObjectMapping 映射下面嵌套的 json?我只需要映射“数据”。我当前的下面代码返回 (null) - 谢谢! { "sucess": true,
我有以下代码: NSString *url = @"http://mysite.com" RKURL *baseURL = [RKURL URLWithBaseURLString:url];
我想更新我的一些项目 pod,在运行 pod update "some_framework"并尝试构建项目后出现此错误: import "RKObjectMapping.h" file not fou
我正在尝试使用 RestKit 0.24.0 将 JSON NSString 映射到一个对象,其中我有一个 RKObjectMapping 以及相应的字典。 网上的大部分解决方案都是引用RestKit
我是一名优秀的程序员,十分优秀!