如何在id"上制作"类别?

时间:2014-07-17 09:49:59

标签: ios objective-c categories

请不要这样做,但我怎么能做“id上的类别”这样的事情?我想在ID类型的对象上有一个方法,怎么做?我的情况是我从API收到了字典,我想做这样的事情:

someVariable = [dictionary[@"key"] myValue];

方法myValue应该类似于例如intValue - 它可以在id类型的对象上使用。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您不能在id上设置类别,因为它不是一个类。它只是一个指针类型 -

typedef struct objc_object *id;

正如其他人在评论中建议的那样,您可以在NSObject -

上添加类别
@interface NSObject (myCategory)
    -(MyObjectType *)myValue;
@end 

但是您无法使用类别在对象上声明其他属性。

我的直觉是你有一个设计问题,可以使用适当的数据对象包装类来更好地解决。