Я учу себя Objective-C из книги ( Программирование какао для Mac OS X ), и я на полпути, однако у меня есть два вопроса, на которые нет ответа или которые не определены в книге.
При определении методов класса, в чем разница (при условии, что в файле .h):
- (int) население;
+ (int) население;
В настоящий момент я вижу, что методы -
требуют, чтобы класс был выделен и инициализирован первым, однако +
можно вызывать статически, не требуя выделения и инициализации. Например. (в функции из другого класса)
// Using -
Earth *world = [[Earth alloc] init];
int population = [world population];
// Using +
int population = [Earth population];
Если это так, то когда мне следует использовать статические методы и есть ли у них какие-либо недостатки при этом.
При определении переменной в параметре функции или в качестве фактической переменной в функции означает ли использование *, что переменная будет объектом? например (снова в заголовочном файле.)
- (void) setPopulation: (NSNumber *) население; // Использование * в качестве совокупности NSNumber
- (void) setPopulation: (int) население; // население не класс, поэтому не нужно *
Извините, если какой-либо из моих терминов не имеет смысла в области Objective-C, такой как статические методы и т. Д. Я программист на PHP и Ruby.