Задать вопрос
@vfvnvsyevsky

В чем отличия void от Id в objective-c?

Как я понял они оба используются когда необходим неопределенный тип, так в чем разница?
  • Вопрос задан
  • 5745 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 1
Flanker_4
@Flanker_4
Вы наверное имели ввиду void* ?
Отличие в том, что id указатель на objective - c объекты, а void* указатель на неопределенный тип, или просто область в памяти (в которой может хранится все что угодно).

stackoverflow.com/questions/1304176/objective-c-di...
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
ManWithBear
@ManWithBear
Swift Adept, Prague
id - это объект objective-c
void - это пустота/ничто в С
void* - это указатель на переменную неизвестного типа в С

UPD.
Если быть совсем точнее, то id это указатель на структуру объекта в objective-c
Если очень интересно, то можно посмотреть подробнее в usr/include/objc/objc.h
/// Represents an instance of a class.
struct objc_object {
    Class isa  OBJC_ISA_AVAILABILITY;
};

/// A pointer to an instance of a class.
typedef struct objc_object *id;
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы