Objective c 关于「;id";在苹果的obj-c编程指南中
id 在Objective-C中,对象标识符是一种不同的数据类型:id。这种类型是任何类型对象的通用类型,而不考虑类,可以用于类实例和类对象本身Objective c 关于「;id";在苹果的obj-c编程指南中,objective-c,ios,Objective C,Ios,id 在Objective-C中,对象标识符是一种不同的数据类型:id。这种类型是任何类型对象的通用类型,而不考虑类,可以用于类实例和类对象本身 id anObject; 在这里,它简单明了 对于Objective-C的面向对象构造(如方法返回值),id将替换int作为默认数据类型。(对于严格的C构造,例如函数返回值,int仍然是默认类型。) 不明白它在说什么?在最后一个内括号中,int仍然是默认值 关键字nil定义为空对象,即值为0的id。id、nil和Objective-C的其他基本类
id anObject;
在这里,它简单明了
对于Objective-C的面向对象构造(如方法返回值),id将替换int作为默认数据类型。(对于严格的C构造,例如函数返回值,int仍然是默认类型。) 不明白它在说什么?在最后一个内括号中,int仍然是默认值
关键字nil定义为空对象,即值为0的id。id、nil和Objective-C的其他基本类型在头文件objc/objc.h中定义 id定义为指向对象数据结构的指针:
typedef struct objc_object {
Class isa;
} *id;
以上不是obj-c语法它是什么,它在解释什么
因此,每个对象都有一个isa变量,告诉它它是一个实例的类。由于类类型本身定义为指针:
typedef struct objc_class *Class;
isa变量通常被称为“isa指针”
我也不明白最后一段
不明白它在说什么
Objective-C是C的超集
在C语言中,函数必须有一个返回值。如果未指定返回值,则默认情况下函数返回int
Objective-C覆盖C的默认行为,并将id
作为未指定其返回值的任何类方法的默认值返回。但同时,其他(C-)函数的默认行为保持不变(即,int
仍然是其他所有函数的默认返回值)
不明白它在说什么
Objective-C是C的超集
在C语言中,函数必须有一个返回值。如果未指定返回值,则默认情况下函数返回int
Objective-C覆盖C的默认行为,并将id
作为未指定其返回值的任何类方法的默认值返回。但同时,其他(C-)函数的默认行为保持不变(即,int
仍然是其他所有函数的默认返回值)
对于Objective-C的面向对象构造(如方法返回值),id将替换int作为默认数据类型。(对于严格的C构造,例如函数返回值,int仍然是默认类型。)
你的书有点让人困惑。它所说的是,如果您正在处理对象,并且不想变得更具体,id
是一种很好的数据类型
id定义为指向对象数据结构的指针:
typedef struct objc_object {
Class isa;
} *id;
以上不是obj-c语法它是什么,它在解释什么
这是一个对象的内部表示。你的书试图证明一个客观的C对象不是魔法:在表面之下它只是一个结构。数据类型id
是指向此类结构的指针
因此,每个对象都有一个isa变量,告诉它它是一个实例的类。由于类类型本身定义为指针:
typedef struct objc_class *Class;
typedef结构对象类*class代码>
isa变量通常被称为“isa指针”
在其内部数据结构中,每个对象都有一个指向表示其类的另一个对象的指针
如果你只是对Objective-C编程感兴趣,你不需要知道这些东西(至少在你学习的时候不需要)。如果您正在做一些高级工作,例如直接与Objective-C运行时交互时,它确实会派上用场
对于Objective-C的面向对象构造(如方法返回值),id将替换int作为默认数据类型。(对于严格的C构造,例如函数返回值,int仍然是默认类型。)
你的书有点让人困惑。它所说的是,如果您正在处理对象,并且不想变得更具体,id
是一种很好的数据类型
id定义为指向对象数据结构的指针:
typedef struct objc_object {
Class isa;
} *id;
以上不是obj-c语法它是什么,它在解释什么
这是一个对象的内部表示。你的书试图证明一个客观的C对象不是魔法:在表面之下它只是一个结构。数据类型id
是指向此类结构的指针
因此,每个对象都有一个isa变量,告诉它它是一个实例的类。由于类类型本身定义为指针:
typedef struct objc_class *Class;
typedef结构对象类*class代码>
isa变量通常被称为“isa指针”
在其内部数据结构中,每个对象都有一个指向表示其类的另一个对象的指针
如果你只是对Objective-C编程感兴趣,你不需要知道这些东西(至少在你学习的时候不需要)。如果你正在做一些高级的事情,比如当你直接与Objective-C运行时交互时,它会派上用场。澄清你所说的“上面的不是obj-C语法,它是什么,它在解释什么?”澄清你所说的“上面的不是obj-C语法,它是什么,它在解释什么?”Hii shaggy,谢谢你的回复。我在询问这个typedef结构objc_对象{Class isa;}*id。。。这段代码在做什么?它在obj-c指南中有详细说明HIII shaggy,谢谢您的回复。我在询问这个typedef结构objc_对象{Class isa;}*id。。。这段代码在做什么?其在obj-c指南中有规定