0

サーバーへの投稿時に問題が発生しています。私の配列のプロパティ名がそうではないことを期待して、すべての値が解析されています。

私のサーバーは次のようなものを期待しています:

{ "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 レストキットへ)

4

1 に答える 1

0

鍵となるパスが私を一時停止させています。self.getBasketSetそれは何を返しているのでしょうか? sharedHorecaオブジェクトが、指定されたキー パスに応答するオブジェクトの を返す場合、NSArray期待どおりに動作するはずです...

于 2013-07-01T17:27:22.240 に答える