Вы должны иметь возможность изменять значение атрибута переданного объекта внутри функции или метода.
Я думаю, что ваша проблема в том, что myFunction
в приведенном выше коде определяется не как функция, а как метод экземпляра класса.Это не будет работать автономно, как это:
myFunction(temObj);
... вместо этого вы должны называть это как:
[someInstanceOfAClass myFunction:tempObj];
Я думаю, что именно здесь ваша проблема.Вы должны получать предупреждение компилятора, если вы пытаетесь вызвать метод, подобный функции.
Если вы вызываете метод правильно, вы сможете сделать это:
-(void)myFunction:(NSMyObject*) obj;
{
[obj setI:0];
NSLog(@"obj.i = %d",obj.i);
}
... и увидеть значение obj.i
, которое вы только что установили, выводится на консоль.
Если вы вызываете его правильно, но значение obj.i
по-прежнему не меняется, наиболее вероятным объяснением является то, что вы смотрите на другой экземпляр NSMyObject, а не тот, который вы передали методу.