![]() |
1
48
它之所以被称为id,是因为从字面上看,它代表了所有类型——一个标识符。 引用Brad Cox的话 Object Oriented Programming: an Evolutionary Approach (实际上,第一版,我买的第一本面向对象的书之一): id消耗固定数量的空间,其宽度足以标识任何时候可能存在的尽可能多的对象。此空间与对象本身中私有数据占用的空间不同。对象标识符是固定大小的数字,。.. |
![]() |
2
8
我想这里没有提到的另一种可能性是,Objective-C的人是拉丁语爱好者,他们的基础是拉丁语代词id(意思是“它”)的单数主格/定语(主语/宾语)形式。它是一个指向特定对象的通用词,id是指向通用对象的指针,所以,你永远不会知道:)。 |
![]() |
3
2
也许这是阶级系统的本我(如弗洛伊德的本我/自我/超我)——考虑到本我是生物体的基本性质,这有点道理。反正我也不相信弗洛伊德的垃圾:-)。 或者,Obj-C的开发者可能来自UNIX命名学派(使用“ls”或“cd”),而不是VAX学派(使用其“show directory”和“set directory”)。 或者,它可以代表例如数据,这可能更有可能。 |
![]() |
4
2
没有证据的理论: “身份”怎么样,因为它是指向任何唯一对象的指针。 |
![]() |
5
0
正如Ryan所指出的,它实际上是一个指针:IIRC是NSObject*。 至于命名,也许命名器使用Dvorak键布局。在这种情况下,“id”很容易输入(就像在Qwerty键盘上输入“gh”一样)。 |