【问题标题】:How to create a JSONModel class in Objective-C with same variable in two types?如何在 Objective-C 中创建具有两种类型的相同变量的 JSONModel 类?
【发布时间】:2016-12-22 01:01:41
【问题描述】:

我在 Objective-C 中有一个 JSONModel 类。我正在使用服务器返回的 JSON 对其进行初始化。

#import "JSONModel.h"

@protocol MyJsonMoodelClass

@end

@interface MyJsonMoodelClass : JSONModel

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

此 JSON 包含一个名为 idFilm 的变量,有时会返回 NSNumber 类型的变量,但会在数组中返回另一个变量。

例如:

idFilm : 5

或

idFilm : [2, 5]

我怎样才能控制它,我怎样才能让相同的变量由两种类型定义,NSNumber 和NSArray?可以控制吗?

【问题讨论】:

  • 您可以将其设置为 NSObject,它是 NSNumber 和 NSArray 的超类。但这在大多数情况下并不是一个好主意,因为在对它进行任何操作之前,您总是必须检查它是哪种类型 (isKindOfClass),而且在您的情况下,它不会自然地转换为 JSON,没有加班。最好总是使用一个数组,如果你得到一个数字,把那个数字放在一个数组中,然后用这个数组代替(即,一个只有一个元素的数组)。

标签: objective-c json jsonmodel


【解决方案1】:

如果你覆盖“set”方法?像这样:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    • 2020-12-09
    • 1970-01-01
    • 1970-01-01
    • 2014-10-04
    相关资源
    最近更新 更多