RestKit:现在 `postObject mapResponseWith: delegate:` 被弃用了,我应该使用什么?

3

我曾经使用这种方法来提交我的对象,但现在它已经被弃用了:

- (void)postObject:(id<NSObject>)object mapResponseWith:(RKObjectMapping *)objectMapping delegate:(id<RKObjectLoaderDelegate>)delegate

我现在应该使用什么?如何配置响应的RKObjectMapping?

我不知道为什么有人踩了我的问题。在我看来,这是一个很好的问题... - ill_always_be_a_warriors
2个回答

3

该选择器已被弃用,推荐使用- (void)postObject:(id<NSObject>)object usingBlock:(RKObjectLoaderBlock)block - 因此您可以使用块来配置RKObjectLoader实例。以下示例说明如何在块中设置对象映射(用于映射响应):

[[RKObjectManager sharedManager] postObject:object
                                      block:^(RKObjectLoader* loader) { 
                                         loader.objectMapping = objectMapping;
                                         loader.delegate = delegate;
}];

嗨@mja。感谢您的回复。看起来这个方法可以解决问题,但我遇到了另一个问题,即创建对象时出现了阻塞。也许您可以帮忙看一下?(http://stackoverflow.com/questions/12309672/restkit-0-10-1-how-do-i-create-a-new-instance-of-an-nsmanagedobject-subclass) - ill_always_be_a_warriors
我自己解决了另一个问题。 (http://stackoverflow.com/questions/12309672/restkit-0-10-1-how-do-i-create-a-new-instance-of-an-nsmanagedobject-subclass) - ill_always_be_a_warriors
没错,这个很好用。顺便说一下,对于那些想要设置委托的人,可以在块中使用 loader.delegate = yourDelegate 来完成。 - ill_always_be_a_warriors
1
是的,我错过了委托分配。谢谢你指出这个问题 - 我已经编辑了我的答案。 - mja

0

你也可以使用

[[RKObjectManager sharedManager] postObject:(id<NSObject>)object delegate:(id<RKObjectLoaderDelegate>)delegate];

这个没有被弃用


我该如何配置响应映射? - ill_always_be_a_warriors
[[RKObjectManager sharedManager].mappingProvider setMapping:(RKObjectMappingDefinition *)objectOrDynamicMapping forKeyPath:(NSString *)keyPath]; [[RKObjectManager sharedManager].mappingProvider setMapping:(RKObjectMappingDefinition *)objectOrDynamicMapping forKeyPath:(NSString *)keyPath]; - jussi
1
但如果你想执行任意映射,这种方法就不适用了。 - mja

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接