2013-06-26 6 views
0

У меня проблемы при отправке на сервер. Каждое значение анализируется, ожидая, что имена свойств моего массива не будут.restkit propertyname не отображается

Мой сервер ожидает что-то вроде этого:

{ "место": 2, "_id": "517808546b496658c10209", "продукты": [ { "количество": 3, "всего": 6,6, "название": "Кокс", "цена": 2,2 }, { "количество": 1, "всего": 4,0, "название": "Вода", «цена»: 2 }] }

, но мой клиент посылает это:

{ "место": 2, "_id": "517808546b496658c10209", "продукты": [ 3, 6.6, "Кокс", 2.2, 1, 4.0, "Вода", ] }

продукта:

@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 to nsset restkit)

+0

Вы получаете ошибки в журнале? – Wain

+0

Нет. Я не получаю никаких ошибок. –

ответ

0

self.getBasketSet ключевой путь дает мне паузу - что это такое? Если ваш объект sharedHoreca возвращает NSArray объектов, отвечающих указанным путям ключей, он должен делать то, что вы ожидаете ...

+0

Я попытался с возвратом NSArray и NSSet, но мои ключи все равно не появятся. Мой self.getBasketSet - это просто простой массив или набор с объектами типа Product. property (nonatomic, strong) NSString * name; свойство (неатомное, сильное) NSString * detail; недвижимость (неатомная, назначая) плавающая цена; имущество (неатомное, сильное) Категория * категория; имущество (неатомное, присвоение) int amount; свойство (неатомное, назначить) float total; –