Почему тип объекта Objective-C называется 'id'? В отличие от, скажем, "объекта"?
Objective-C: Почему он называется 'id'?
Ответ 1
Он называется id, потому что в буквальном смысле это все тип представляет собой идентификатор.
Цитата: Брэд Кокс из Объектно-ориентированное программирование: эволюционный подход (на самом деле, первое издание, одна из первых книг OO, которые я купил): Идентификатор потребляет фиксированное количество пространства, достаточно широкое, чтобы идентифицировать столько объектов, сколько может существовать в любой момент времени. Это пространство не совпадает с пространством, занимаемым частными данными в самом объекте. Идентификаторы объектов - это номера фиксированного размера,...
Ответ 2
Я предполагаю, что другая возможность, не упомянутая здесь, будет заключаться в том, что люди Objective-C были латинскими баффами и основывали их на исключительных номинативно-винительных (предметных/объектных) формах латинского местоимения id (что означает "это" ). Это своего рода родовое слово, направленное на определенный объект, а id - указатель на общий объект, поэтому вы никогда не знаете:).
Ответ 3
Может быть, это идентификатор системы классов (как и у Фрейда id/ego/superego) - это немного изменится, если id - базальная природа организма. Не то, чтобы я верю любому из этого мусора Фрейда в любом случае: -).
Или, может быть, разработчики Obj-C пришли из UNIX-школы namers (с "ls" или "cd" ), а не из школы VAX (с ее "show directory" и "set directory" ).
Или это может означать данные экземпляра, что, вероятно, более вероятно.
Ответ 4
Теория без доказательства:
Как насчет 'identity', потому что это указатель на любой уникальный объект.
Ответ 5
Как отмечает Райан, на самом деле это указатель: IIRC - это NSObject *.
Что касается именования - возможно, пользователь использует макет ключа Dvorak. "id" действительно легко ввести в этом случае (это похоже на ввод "gh" на Qwerty).