小弟的model定义如下:
@class cartitems; @class giftItems; @class specification; @class promotions; @interface THWShoppingCartModel : JSONModel @property (nonatomic, assign) NSInteger discountPrice;//优惠立减 @property (nonatomic, assign) NSInteger quantity;//商品数量 @property (nonatomic, assign) NSInteger id;//ID @property (nonatomic, assign) NSInteger effectiveQuantity;//有效商品数 @property (nonatomic, assign) NSInteger freightPrice;//运费 @property (nonatomic, assign) NSInteger effectivePrice;//有效金额 @property (nonatomic, strong) NSArray*giftItems; //订单项 @property (nonatomic, strong) NSArray *cartItems; //礼物项 @property (nonatomic, assign) NSInteger effectivePoint;//有效商品积分 @end @interface cartitems : JSONModel @property (nonatomic, assign) NSString* id; //订单ID @property (nonatomic, assign) NSString *productId; //shangpinID @property (nonatomic, copy) NSString *unit;//单位 @property (nonatomic, assign) NSString *quantity; //数量 @property (nonatomic, assign) NSString *discount;//折扣金额 @property (nonatomic, copy) NSString *tenantName;//商家名称 @property (nonatomic, copy) NSString *tenantId;//商家ID @property (nonatomic, assign) NSString *price;//折后单价 @property (nonatomic, assign) NSString *subTotal;//金额小计 @property (nonatomic, copy) NSString *fullName;//全名 @property (nonatomic, copy) NSString *thumbnail;//缩略图 @property (nonatomic, strong) NSArray *specification; //促销 @property (nonatomic, strong) NSArray *promotions; //规格 @property (nonatomic, assign) BOOL selected; //是否选择 @property (nonatomic, copy) NSString *name;//规格值 @property(nonatomic,copy) NSString *coupon;//是否可领卷 @end @interface giftItems : JSONModel @property(copy,nonatomic)NSString *id ; //ID @property (nonatomic, assign) NSUInteger productId ; //商品Id @property(copy,nonatomic)NSString * fullName; //全名 @property(copy,nonatomic)NSString *unit; //单位 @property(copy,nonatomic)NSString *thumbnail; //缩略图 @property(copy,nonatomic)NSString *quantity; //数量 @end @interface specification : JSONModel @property (nonatomic, assign) NSUInteger id; //规格Id @property(copy,nonatomic)NSString *name; //规格名称 @end @interface promotions : JSONModel @property (nonatomic, assign) NSUInteger id; //促销Id @property(copy,nonatomic)NSString *name; //促销名称 @end
现在需要用:
-(void)parseShoppingCartModelProfile:(NSArray*) cartItems { if(!_moduleDic) _moduleDic = [NSMutableDictionary new]; for (cartitems *item in cartItems) { @try { NSString *tentid = [NSString stringWithFormat:@"%@",item.tenantId]; if(![_moduleDic.allKeys containsObject:tentid]) { [_moduleDic setValue:item forKey:tentid]; } else { [((NSMutableArray *)_moduleDic[tentid]) addObject:item]; } } @catch (NSException *exception) { NSLog(@"%@",exception.description); } } }
这个方法获取循环遍历处理THWShoppingCartModel NSArray -[__NSCFDictionary tenantId]: unrecognized selector sent to instance 0x7fdf9e0a3fa0
,请问大神门如何处理?
我发现jsonmodel会有时无法赋值,建议使用其他自动解析库
这种是dictionary里面套dictionary
这种是dictionary里面套array
具体地方使用的时候,直接把最外层的jsonmodel对象初始化即可。他们会进行内部映射的
首先根据报错内容, 比较明确的是, 你项目中 cartItems 中的每个元素都是一个 NSDictionary
.
建议你向上寻找对应的数据源的正确性.
我看楼主的model都是继承JSONModel,这是个第三方的解析工具吗?如果是的话,应该就是2楼的意思啦,没必要你再遍历去取数据,应该都给你映射好了,实在不行,你可以断点跟一下,打印下数据看看。