我是restkit的新手,我在我的应用程序中使用它以及核心数据。我非常惊讶restkit与核心数据一起工作的方式。简直太棒了。但是在解析我的一个Web服务时,我遇到了一个重大问题。该应用程序继续崩溃,无法映射响应中的值。以下是我的回复 -
[ { “id”:10, “创造”:“2012-10-06 13:32:09 +0000”, “createdBy”:null, “functionalCurrency”:null, “imageUrl”:null, “lat”:null, “lon”:null, “maxOccupancy”:0, “名称”:“天井用餐”, “posX”:0, “posY”:0, “reportingCurrency”:null, “salesTaxRate1”:0, “salesTaxRate2”:0, “salesTaxRate3”:0, “salesTaxRate4”:0, “timezone”:“ - 0830”, “transactionalCurrency”:null, “更新”:“2012-10-06 13:32:09 +0000”, “updatedBy”:null}]
我收到以下错误.-
E restkit.object_mapping:RKObjectMappingOperation.m:262将关键路径“locationId”的属性映射到值10时验证失败。错误:无法完成操作。 (可可错误1610.) - [__ NSCFNumber length]:无法识别的选择器发送到实例0x774e020
我的位置类声明如下 -
@interface Location : NSManagedObject
@property (nonatomic,strong)NSNumber *locationId;
@property (strong, nonatomic) NSString *created;
@property (nonatomic,strong) NSString *createdBy;
@property (nonatomic,strong) NSString *functionalCurrency;
@property (nonatomic,strong) NSString *imageUrl;
@property (strong, nonatomic) NSString *lat;
@property (strong, nonatomic) NSString *lon;
我按如下方式初始化经理 -
RKURL *baseURL = [RKURL URLWithBaseURLString:serverUrl];
objectManager = [RKObjectManager objectManagerWithBaseURL:baseURL];
objectManager.client.baseURL = baseURL;
objectManager.client.requestQueue.showsNetworkActivityIndicatorWhenBusy = YES;
[RKObjectManager setSharedManager:objectManager];
[objectManager loadObjectsAtResourcePath:[NSString stringWithFormat:@"%@", [URL resourcePath]] delegate:self];
当我尝试将locationId设置为NSString时,RKObjectManager根本不匹配'9'之后的任何值。当设置为NSNumber时,它与'2'后的任何值都不匹配。
请帮帮我。 RKManagedObjectMapping也发生了同样的事情,因此没有数据进入我的核心数据文件。
答案 0 :(得分:5)
这真是非常令人尴尬,经过大量的敲击后终于找到了问题。核心数据中我的locationId的最大值设置为1.这导致验证错误。