【问题标题】:Why variable of data type "id" can't be a pointer, in Objective-C? [duplicate]为什么在Objective-C中数据类型“id”的变量不能是指针? [复制]
【发布时间】:2014-03-18 20:54:13
【问题描述】:

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

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

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

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

id someVar = [[SomeClass alloc] init];

这里,id 类型不再是指针。为什么?

【问题讨论】:

  • 感谢 DarkDust,网址建议,有帮助
  • 这是我在这里的第一个问题,我感觉很好,几分钟内就得到了回答。谢谢大家!
  • 谁告诉你id不能是指针?试试const id* selfPtr = &self;

标签: objective-c


【解决方案1】:

id 是一个通用指针类型,指向一个你不知道类是什么的 Objective-C 对象。但它是指针类型。

【讨论】:

  • 感谢 Wain 快速及时的回复。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2015-01-14
    • 2021-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-26
    相关资源
    最近更新 更多