2014-08-31 3 views
1

Мне нужно проверить во время анализа данных из json-файла, если будет модель NSArray или NSDictionary, потому что ошибка на стороне сервера. Если есть Array, мне нужно игнорировать эту модель.iOS Проверка JSONModel для класса

@property (strong, nonatomic) NSDictionary <Optional,RCTruckInningsModel> *innings; 

+(BOOL)propertyIsOptional:(NSString*)propertyName 
{ 
return YES; 
} 

Я использую jsnomodel.com

Это не работает

Благодаря

ответ

0

Вы правильно определяя "подачи", как Факультативного, но это не так, как Дополнительных работы , Свойства, определенные как Необязательные, могут быть либо их указанным типом, либо nil.

У вас очень нестандартная ситуация на ваших руках, и для этого потребуется специальное решение. Off верхней части моей головы, вы можете сделать следующее:

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 и т. д. Но это должно подтолкнуть вас к вправо

Принять ответ, если он поможет вам решить вашу проблему

+0

Отлично! Работает. Большое спасибо – user3793849

Смежные вопросы