Objective-C属性 - "id"是什么意思?

Sco*_*eve 16 objective-c ios ios5

可能重复:
id是什么意思?

根据我的问题,我显然是iOS开发和Objective-C的菜鸟.我正在关注一个教程,我在我的接口(.h)实现中声明了这一行:

@property (strong, nonatomic) id dataObject1;
Run Code Online (Sandbox Code Playgroud)

"id"是什么意思?

pra*_*dym 12

id是对象的类型; 例如,该类型可以是NSArray *int替代.

id类型指定对任何Objective-C对象的引用(无论其类).

  • 不,id不能是int.它是NSObject*的别名.所以它可能是NSArrary*但不是int.int根本就不是对象.这是一个标量. (19认同)
  • @HermannKlecker那是不对的.`id`数据类型是*not*'NSObject*`的别名; 它是**objc.h**中声明的`typedef`,如下所示:`typedef struct objc_object {Class isa; }*ID; ` (8认同)
  • @HermannKlecker我的观点与`int`数据类型无关.我只是指出`id`并不意味着'NSObject`.例如,`NSProxy`的类结构和实例不是`NSObject`的子类,但它们匹配`id`数据类型. (2认同)
  • 那么有人会真正纠正答案吗? (2认同)