首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IOS : JSONModel : NSInvalidArgumentException

IOS : JSONModel : NSInvalidArgumentException
EN

Stack Overflow用户
提问于 2015-05-03 19:41:02
回答 1查看 328关注 0票数 0

我有这个json数据

代码语言:javascript
复制
{"data": [{"id": 3,"nameAr": "Test","nameEn": "Test","active": 1,
"subCategories": [{"id": 27,"nameAr": "Test",
"nameEn": "Test","active": 0,
"sections": [{"id": 53,"nameAr": "Test",
"nameEn": "Test","active": 0},
{"id": 52,"nameAr": "Test","nameEn": "Test","active": 0
}]}]}],"code": "1001","message": "success"
}

当使用JSONModel https://github.com/icanzilb/JSONModel解析此json时

解析此代码的代码

代码语言:javascript
复制
self.categoriesModels = [CategoryModel arrayOfModelsFromDictionaries: [results objectForKey:@"data"]];

并试图访问嵌套的json

代码语言:javascript
复制
categoryModel.subCategories

我犯了这个错误

-CategoryModel subCategories:未识别的选择器发送到实例0x17404b910 2015-05-03 20:38:15.019 AkshefFeen2268:786267 *终止应用程序由于未被识别的异常“NSInvalidArgumentException”,原因是:‘-分级模式subCategories:未识别的选择器发送给实例0x17404b910’*第一次抛出堆栈:(0x185fb42d8 0x1977800e4 0xfbb3a4 0x185fb8154 0x185ebaccc 0x27608 0x18ab174 0x18abd7790 0xa78a240xa240x18a18a604 0x18abd9ec0fx6xc4x4x6fx10)

我的模特

1-类别模型.h

代码语言:javascript
复制
#import "JSONModel.h"
#import "SubCategoryModel.h"

@protocol CategoryModel
@end

@interface CategoryModel : JSONModel

@property (assign, nonatomic) int id;
@property (strong, nonatomic) NSString* nameAr;
@property (strong, nonatomic) NSString* nameEn;
@property (assign, nonatomic) int active;
@property (strong, nonatomic) NSArray<SubCategoryModel>* subCategories;

@end

2-次级类别模型.h

代码语言:javascript
复制
@protocol SubCategoryModel
@end

@interface SubCategoryModel : JSONModel

@property (assign, nonatomic) int id;
@property (strong, nonatomic) NSString* nameAr;
@property (strong, nonatomic) NSString* nameEn;
@property (assign, nonatomic) int active;
@property (strong, nonatomic) NSArray<SectionModel,Optional>* subCategories;

@end

3-SectionModel.h

代码语言:javascript
复制
#import "JSONModel.h"

@protocol SectionModel
@end

@interface SectionModel : JSONModel

@property (assign, nonatomic) int id;
@property (strong, nonatomic) NSString* nameAr;
@property (strong, nonatomic) NSString* nameEn;
@property (assign, nonatomic) int active;

@end

为什么我会得到这个错误,以及如何解决它?

EN

回答 1

Stack Overflow用户

发布于 2015-08-11 13:35:41

@ahmed :可能有两个拥有性的原因: 1.可能是因为您的任何JSONModel类中都使用了@合成关键字。

  1. 这可能是由于父对象和子对象之间的命名相同。

请参考此链接获取JSONModel:单击此处中的首选命名约定。

或者你也可以在这里提出同样的问题,你将得到正式的答案或决议:单击此处

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30018524

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档