Ios 如何制作;id上的类别“;?

Ios 如何制作;id上的类别“;?,ios,objective-c,categories,Ios,Objective C,Categories,请不要逐字理解,但我怎么能做“id上的类别”这样的事情呢?我想在ID类型的对象上有一个可用的方法,怎么做?我的情况是,我从API收到了字典,我想做如下事情: someVariable = [dictionary[@"key"] myValue]; 方法myValue应该类似于例如intValue,它在id类型的对象上可用。有什么想法吗?您不能在id上有类别,因为它不是类。它只是一个指针类型- typedef struct objc_object *id; 正如其他人在评论中所建议的,您可以在

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

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

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

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

typedef struct objc_object *id;
正如其他人在评论中所建议的,您可以在
NSObject
-

@interface NSObject (myCategory)
    -(MyObjectType *)myValue;
@end 
但是不能在使用类别的对象上声明其他属性


我的直觉是,您有一个设计问题,最好为您的数据对象使用合适的包装类来解决。

您应该尝试对NSObject进行分类,我认为这会产生同样的效果,而且会更容易。最接近您将要得到的金属是一个
NSObject
类别。我不知道伙计们,我已经试过了,但是方法不可用。为什么不在NSDictionary上做一个类别,比如myValueForKey,它返回给定键的myValue。。。这对你有用吗?这很有趣:)你不需要将
字典
对象转换为
NSObject
,每个类都继承自该类。