您正确地将“局”定义为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 结构等。但它应该推动你正确方向
如果它可以帮助您解决问题,请接受答案