为什么数据类型“id”的变量不能是Objective-C中的指针?

时间:2014-03-18 12:41:23

标签: objective-c

我是Objective-C的新手,我很想知道有关id数据类型的更多信息。我想知道为什么数据类型id的变量不能成为指针。

在声明变量时,我了解到我们应该将它作为指针,例如

SomeClass *someVar = [[SomeClass alloc] init];

但是在id类型的情况下,它就像:

id someVar = [[SomeClass alloc] init];

此处,id类型不再是指针。为什么呢?

2 个答案:

答案 0 :(得分:1)

id是Objective-C对象的通用指针类型,您不知道该类是什么。但它是指针类型。

答案 1 :(得分:0)

id是一个指向对象的指针,如(NSObject *),但它的特殊之处在于它不使用星号。这可能会有所帮助:https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/WorkingwithObjects/WorkingwithObjects.html#//apple_ref/doc/uid/TP40011210-CH4-SW18