可能重复:
id 是什么意思?
我是 iOS 编程的新手。
我看到了以下声明
- (id)init
(id) 在这里是什么意思?
id
表示与任何对象兼容的类型。符号
- (id)init
表示init
你的类的实例方法;通常它用于在内存分配后初始化实例化对象(通常使用完成alloc
)。在 Objective-C 中,方法的返回类型是通过将类型放在方法名称之前的括号中来声明的。因此,这意味着该init
方法可以返回任何 Objective-C 对象。
但是你真的应该用谷歌搜索 Objetive-C 教程并阅读它。这是一个基本的事情,没有理由不阅读教程或其他文档。
id
是表示 Objective-C 对象的普通 C 兼容类型。这允许 C 源代码存储 Objective-C 对象并与之交互。
它是 'id' 类型的原因是 -init 方法从 NSObject 一直继承(在 Objective-C 中,您不能重载方法,因此子类化时不能更改参数/返回值类型) . 由于“id”适用于任何对象,这没关系。
编辑似乎指定一个具体的类作为 -init 的返回类型是可以的,即使你最终覆盖了'-[NSObject init]'。
我猜“id”的使用只是一种习惯?
不过,'id' 充当“通用 Objective-C 对象指针”,在赋值时接受任何对象类型这一事实保持不变。
-(id)init 被调用来初始化对象内的变量并进行任何必要的设置(它基本上是构造函数)。
可能的重复可能是 -(id)init 方法有什么用?