0

私はこのjsonデータを持っています

{"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を使用してこのjsonを解析しながらhttps://github.com/icanzilb/JSONModel

これを解析するコード

self.categoriesModels = [CategoryModel arrayOfModelsFromDictionaries: [results objectForKey:@"data"]];

そして、ネストされたjsonにアクセスしようとしています

categoryModel.subCategories

このエラーが発生しました

-[CategoryModel subCategories]: 認識されないセレクターがインスタンス 0x17404b910 に送信されました 2015-05-03 20:38:15.019 AkshefFeen[2268:786267] * キャッチされない例外 'NSInvalidArgumentException' が原因でアプリを終了します。理由: '-[CategoryModel subCategories]: 認識されないセレクターsent to instance 0x17404b910' * First throw call stack: (0x185fb42d8 0x1977800e4 0x185fbb3a4 0x185fb8154 0x185ebaccc 0x100027608 0x18ab1d474 0x18abd7790 0x18aa78240 0x18a9e86ec 0x185f6c2a4 0x185f69230 0x185f69610 0x185e952d4 0x18f6b36fc 0x18aa5afac 0x10002d220 0x197dfea08) libc++abi.dylib: terminating with uncaught exception of type NSException

マイモデル

1 - カテゴリーモデル.h

#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 - SubCategoryModel.h

@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

#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

このエラーが発生した理由と解決方法を教えてください。

4

1 に答える 1

1

@ahmed Shoeib : 考えられる理由は 2 つあります。1. JSONModel クラスの @synthesize キーワードが原因である可能性があります。

  1. これは、親オブジェクトと子オブジェクトの名前が同じであることが原因である可能性があります。

JSONModel で推奨される命名規則については、このリンクを参照してください:ここをクリック

または、ここで同じ問題を提起すると、公式の回答または解決策が得られます:ここをクリック

于 2015-08-11T13:35:41.820 に答える