В конкретном случае, который вы показываете, нет никакой разницы. Некоторым людям нравится думать, что tweetPicker
имеет тип UIPickerView *
, то есть указатель на UIPickerView
. Эти люди обычно пишут это как
UIPickerView* tweetPicker;
Другие люди предпочитают думать об этом, как *tweetPicker
- это UIPickerView
, то есть разыменование указателя дает UIPickerView
. Эти люди обычно пишут:
UIPickerView *tweetPicker;
Я предпочитаю последнее, потому что синтаксис C (и Objective-C из-за этого) поддерживает его лучше. Возьмем, к примеру, следующие объявления переменных:
int* a, b, c;
int *a, *b, *c;
На первый взгляд, начинающий программист C (или Objective-C) может сказать «это одно и то же», но это не так. В первом случае b
и c
являются обычными целыми числами, во втором случае они являются указателями. a
является указателем в обоих случаях.
С моей точки зрения, концепция «типа» в любом случае настолько слаба в C (что с поведением приведения типов и т. П.), Что расширение этой концепции на один шаг дальше к переменным-указателям сводит с ума - особенно с помощью автоматического конверсии в и из void *
или id
, которые вы получаете.