2016-12-22 33 views
0

我在Objective-C中有一个JSONModel类。我正在用服务器返回的JSON初始化它。如何在Objective-C中用两种类型的变量创建JSONModel类?

#import "JSONModel.h" 

@protocol MyJsonMoodelClass 

@end 

@interface MyJsonMoodelClass : JSONModel 

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

这JSON包含一个称为​​变量,有时则返回NSNumber类型的,但另一种是在阵列返回。

的exaple:

idFilm : 5 

idFilm : [2, 5] 

我怎么能控制这一点,我怎么可能有两种类型,NSNumberNSArray定义相同的变量?有可能控制这个?

+1

你可以将其设置为一个NSObject这既是NSNumber的和NSArray中的超类。但是这在大多数情况下并不是一个好主意,因为在做任何事情之前你总是要检查它的类型('isKindOfClass'),并且它不会自然地转换为JSON,没有加班。最好总是使用一个数组,如果你得到一个数字,把这个数字放在一个数组中,然后使用数组(即只有一个元素的数组)。 –

回答

0

如果你重写“set”方法?是这样的:

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

我不知道是否能正常工作,但可以是一个起点

相关问题