私はrestkitを初めて使用し、コアデータと一緒にアプリケーションで使用しています。私はrestkitがコアデータを処理する方法にかなり驚いていました。それは単に素晴らしいです。しかし、私のWebサービスの1つを解析しているときに、大きな問題に直面しています。アプリはクラッシュし続け、応答から値をマップできません。以下は私の応答です-
[{"id":10、 "created": "2012-10-06 13:32:09 +0000"、 "createdBy":null、 "functionalCurrency":null、 "imageUrl":null、 "lat":null 、"lon":null、 "maxOccupancy":0、 "name": "Patio Dining"、 "posX":0、 "posY":0、 "reportingCurrency":null、 "salesTaxRate1":0、 "salesTaxRate2": 0、 "salesTaxRate3":0、 "salesTaxRate4":0、 "timezone": "-0830"、 "transactionalCurrency":null、 "updated": "2012-10-06 13:32:09 +0000"、 "updatedBy ": ヌル}]
次のエラーが発生します。-
E restkit.object_mapping:RKObjectMappingOperation.m:262キーパス'locationId'の属性を値10にマッピング中に検証に失敗しました。エラー:操作を完了できませんでした。(Cocoaエラー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でも発生しているため、コアデータファイルにデータが入力されません。