Область имен параметров в методах Objective C - PullRequest
1 голос
/ 16 июня 2010
// myClass.h
@interface myClass : NSObject {
    int variable1;
}

- (int) addOne: (int)variable1;

//myClass.m
- (int) addOne: (int)variable1{
variable1++;
}

Мой вопрос: добавит ли [myClass addOne:aNumber] 1 к aNumber или 1 к значению ивара variable1?

Ответы [ 2 ]

3 голосов
/ 16 июня 2010

Локальная переменная (или параметр функции) скрывает объявление переменной экземпляра (вы должны получить предупреждение об этом от компилятора), поэтому локальная копия из aNumber будет увеличена.

0 голосов
/ 16 июня 2010

Он добавит один к aNumber, чтобы добавить один к ivar, вам нужно написать self.variable1 + = 1, я думаю, что даже ++ может работать.

...