「イニング」をOptionalとして正しく定義していますが、これはOptionalの仕組みではありません。Optional として定義されたプロパティは、指定されたタイプまたはnilのいずれかになります。
あなたの手には非常に非標準的な状況があり、特別な解決策が必要になります. 私の頭の上から、次のことができます:
1) 無視されたプロパティを定義します (つまり、JSONModel は JSON のインポート時にそれを処理しません)。
@property (strong, nonatomic) NSDictionary<Ignore>* innings;
2) 次に、initWithDictionary をオーバーライドして、プロパティ値を自分でインポートします (initWithDictionary を使用する場合)。
-(id)initWithDictionary:(NSDictionary*)dict error:(NSError**)err
{
self = [super initWithDictionary:dict error:err];
if (self) {
if ([dict[@"innings"] isKindOfClass:[NSDictionary class]]) {
NSDictionary* d = dict[@"innings"];
NSMutableDictionary* md = [@{} mutableCopy];
for (NSString* key in d.allKeys) {
RCTruckInningsModel* model = [[RCTruckInningsModel alloc] initWithDictionary: d[key]];
if (model) {
md[key] = model;
}
}
self.innings = [md copy];
}
}
return self;
}
私は実際に Xcode でコードを試しませんでしたが、それが一般的な解決策であるべきだと思います。自分で試して、独自の JSON 構造などに合わせて完成させる必要があります。方向
問題の解決に役立つ場合は、回答を受け入れます