(UIApplication *) Почему перед звездочкой стоит пробел? - PullRequest
3 голосов
/ 08 октября 2010
-(void)applicationDidFinishLaunching:(UIApplication *) app {

после UIApplication Почему перед звездочкой есть пробел?

Ответы [ 4 ]

10 голосов
/ 08 октября 2010

Это характеристика из кода C , я довольно новичок в Objective-C, так что простите, если это не правильный синтаксис объективного C. Это ответит на вопрос. Ответы о том, что это стиль, в основном верны в отношении такого параметра, как приведенный в вопросе. Проблема возникает при объявлении нескольких переменных в одной строке в C или C ++ (в этой части я не уверен, поддерживает ли это Obj-C).

int* i;

и

int *i;

эквивалентны; однако при работе с несколькими объявлениями

int* i, j;

не совпадает с

int *i, *j;

* применяется к переменной i, а не к int, поэтому вам требуется * для каждой переменной, для которой вы хотите создать указатель.

Таким образом, цель иметь пробел после имени класса - стилистический намек на это.

7 голосов
/ 08 октября 2010

Это, как уже отмечалось, просто стиль;но обычно считается, что хороший стиль ставит пробел перед звездочкой, а не после (т.е. NSString *aString;, а не NSString* aString;, поскольку звездочка привязывается к имени, а не к типу; ref.Ответ Стива).

Этот же стиль, как правило, распространяется на случай, когда тип стоит отдельно, например, в - (NSString *) someMethod; или - (void) someMethodWithAnArgument:(NSString *)argumentName;, для обеспечения согласованности.

5 голосов
/ 08 октября 2010

Это просто стиль, в данном случае пробел ничего не значит.

0 голосов
/ 30 марта 2011

На самом деле int *i; int* i; и (int *) i; означают разные вещи.Первые два указатели.Но последнее на самом деле говорит, что «i» возвращает указатель на int.Так в:

-(void)applicationDidFinishLaunching:(UIApplication *) app {

Это фактически говорит о том, что "app" возвращает указатель

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...