Почему в этом объявлении метода нет *? - PullRequest
1 голос
/ 11 июня 2010

Вот описание метода на полпути в документации Apple: Цель обучения C: Учебник для начинающих

- (void)insertObject:(id) anObject atIndex:(NSUInteger) index

Почему после NSUInteger нет *.Я думал, что все объекты были типами указателей, и все строго типизированные указатели должны иметь символ * после него.

1 Ответ

11 голосов
/ 11 июня 2010

NSUInteger не является типом объекта, это typedef до unsigned int.

Единственная причина, по которой вы действительно хотите использовать * в этом контексте, заключается в том, что вы хотите получить адрес типа int и сохранить в нем что-то. (Некоторые библиотеки делают это с сообщениями об ошибках). Пример этого:

-(void) methodName: (NSUInteger *) anInt {
    *anInt = 5;
}

NSUInteger a;
[obj methodName: &a]; //a is now 5
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...