2016-12-22 3 views
0

У меня есть класс JSONModel в Objective-C. Я инициализирую это с помощью JSON, возвращаемого сервером.Как создать класс JSONModel в Objective-C с одинаковой переменной в двух типах?

#import "JSONModel.h" 

@protocol MyJsonMoodelClass 

@end 

@interface MyJsonMoodelClass : JSONModel 

@property (nonatomic, strong) NSNumber <Optional> * idFilm; 

В этом формате JSON содержит переменную с именем idFilm, а иногда возвращается типа NSNumber но другой возвращается в массиве.

Для exaple:

idFilm : 5 

или

idFilm : [2, 5] 

Как я мог это контролировать, и как я мог бы иметь ту же переменную, определяемую двумя типами, NSNumber и NSArray? Возможно ли это контролировать?

+1

Вы можете установить его в NSObject, который суперкласс как NSNumber и NSArray. Но это не очень хорошая идея в большинстве ситуаций, так как вам всегда нужно проверять, какой тип она есть, прежде чем что-либо делать с ней ('isKindOfClass'), и она, естественно, не конвертируется в JSON, в вашем случае, без Дополнительная работа. Лучше было бы всегда использовать массив, и если вы получите число, поместите это число в массив и используйте вместо него массив (т. Е. Массив только с одним элементом). –

ответ

0

если вы переопределяете метод «set»? что-то вроде этого:

- (void)setIdFilm:(id)idFilm 
{ 
    if([idFilm isKindOfClass:NSArray]) 
     ... 
    else 
     ... 
} 

Я не знаю, может работать, но может стать отправной точкой