Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/98.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 从iOS发布到Rails应用程序时序列化嵌套对象_Iphone_Ios_Serialization_Restkit - Fatal编程技术网

Iphone 从iOS发布到Rails应用程序时序列化嵌套对象

Iphone 从iOS发布到Rails应用程序时序列化嵌套对象,iphone,ios,serialization,restkit,Iphone,Ios,Serialization,Restkit,希望在正确的方向上得到一点推动。当我使用RestKit发布到rails应用程序时,很难让嵌套对象正确序列化。我有以下映射: RKObjectMapping *cartSerializationMapping = [RKObjectMapping mappingForClass:[TOCart class]]; [cartSerializationMapping mapKeyPath:@"place.placeID" toAttribute:@"order[external_id]"]; //m

希望在正确的方向上得到一点推动。当我使用RestKit发布到rails应用程序时,很难让嵌套对象正确序列化。我有以下映射:

RKObjectMapping *cartSerializationMapping = [RKObjectMapping mappingForClass:[TOCart class]];
[cartSerializationMapping mapKeyPath:@"place.placeID" toAttribute:@"order[external_id]"];

//map the line items serialization mapping
RKObjectMapping *lineItemSerializationMapping = [RKObjectMapping mappingForClass:[TOLineItem class]];
[lineItemSerializationMapping mapKeyPath:@"itemID" toAttribute:@"itemID"];
[lineItemSerializationMapping mapKeyPath:@"name" toAttribute:@"name"];

[[RKObjectManager sharedManager].mappingProvider setSerializationMapping:lineItemSerializationMapping forClass:[TOLineItem class]];

//add relationship bw line items to TOLineItem
[cartSerializationMapping mapKeyPath:@"line_items" toRelationship:@"order[line_items]" withMapping:lineItemSerializationMapping serialize:YES];

[[RKObjectManager sharedManager].mappingProvider setSerializationMapping:cartSerializationMapping forClass:[TOCart class]];
发布到服务器后,序列化适用于父对象,但不适用于嵌套的行\项对象:

Started POST "/orders" for 127.0.0.1 at 2011-11-16 04:05:58 -0800
Processing by OrdersController#create as JSON
Parameters: {"order"=>{"line_items"=>["<TOLineItem: 0x8aafdb0>"], "external_id"=>"4ae8a535f964a52024b121e3"}}
于2011-11-16 04:05:58-0800发布127.0.0.1版的“/code>开始发布订单” OrdersController处理#创建为JSON 参数:{“订单”=>{“行项目”=>[“”],“外部项目id”=>“4ae8a535f964a52024b121e3”} 我想将行_项序列化为itemID和name等

我是否设置了错误的映射

谢谢

更新:

我的艺术课:

#import <Foundation/Foundation.h>
@class TOPlace;

@interface TOCart : NSObject
{
    NSNumber *cartID;
    TOPlace *place; //post to external id
    NSString *state;
    NSMutableArray *line_items;
}
@property (nonatomic, retain) NSNumber *cartID;
@property (nonatomic, retain) TOPlace *place;
@property (nonatomic, retain) NSString *state;
@property (nonatomic, retain) NSMutableArray *line_items;

@end
#导入
@类托普莱斯;
@接口到art:NSObject
{
NSNumber*cartID;
TOPlace*place;//发布到外部id
NSString*状态;
NSMUTABLEARRY*行项目;
}
@属性(非原子,保留)NSNumber*cartID;
@不动产(非原子,保留)放置在*位置;
@属性(非原子,保留)NSString*状态;
@属性(非原子,保留)NSMUTABLEARRY*行项目;
@结束

我总是定义从API映射到实体的映射,然后使用
[myMappingFromApi inverseMapping]
选择器创建序列化映射。你可以在我对一些不同问题的回答中找到更多细节,但肯定是相关的:。

你能发布你的TOCart课程吗?(IVAR或属性定义)已使用我的购物车类更新。ThxI通常定义映射以从API映射到实体,然后使用inverseMapping选择器创建序列化映射。看看我的另一个答案,因为这可能会给你带来一些启示——你真是太棒了,真的成功了!我想知道为什么我们不能自己做序列化映射。你可以发布你的链接作为一个答案,我会接受它。又来了!