サーバーへの投稿時に問題が発生しています。私の配列のプロパティ名がそうではないことを期待して、すべての値が解析されています。
私のサーバーは次のようなものを期待しています:
{ "location": 2, "_id": "517808546b496658c10209", "products": [ { "amount": 3, "total": 6.6, "name": "Coke", "price": 2.2 },{ " amount": 1, "total": 4.0, "name": "water", "price": 2 } ] }
しかし、私のクライアントはこれを送信しています:
{ "場所": 2, "_id": "517808546b496658c10209", "製品": [ 3, 6.6, "コーラ", 2.2, 1, 4.0, "水", 2 ] }
製品:
@property (nonatomic) NSNumber *_id;
@property (nonatomic, strong) NSString *name;
@property (nonatomic, strong) NSString *detail;
@property (nonatomic, assign) float price;
@property (nonatomic, strong) Category *category;
@property (nonatomic, assign) int amount;
@property (nonatomic, assign) float total;
私のコード:
RKObjectMapping *productMapping = [RKObjectMapping requestMapping];
[productMapping addAttributeMappingsFromDictionary:@{@"productId":@"_id",@"amount":@":amount",@"total":@"total",@"price":@"price",@"name":@"name"}];
RKObjectMapping *horecaMapping = [RKObjectMapping requestMapping];
[horecaMapping addAttributeMappingsFromDictionary:@{ @"Id": @"_Id",@"deliverySpotId":@"location"}];
[horecaMapping addPropertyMapping:[RKRelationshipMapping relationshipMappingFromKeyPath:@"self.getBasketSet" toKeyPath:@"products" withMapping:productMapping]];
RKRequestDescriptor *requestDescriptor = [RKRequestDescriptor requestDescriptorWithMapping:horecaMapping objectClass:[Horeca class] rootKeyPath:nil];
[RKMIMETypeSerialization registerClass:[RKNSJSONSerialization class] forMIMEType:@"text/plain"];
RKObjectManager *manager = [RKObjectManager managerWithBaseURL:baseURL];
[manager addRequestDescriptor:requestDescriptor];
[manager postObject:sharedHoreca path:@"/orders" parameters:nil success:nil failure:nil];
--update 1-- 配列の NSSET も作成しようとしましたが、それでも役に立ちません。 (nsarray から nsset レストキットへ)