Я создаю объект, который я установил для nil по умолчанию, прежде чем включать его в метод в качестве параметра. Я делаю чек позже, если объект по-прежнему равен нулю или нет. Объект установлен для изменения в методе, но результат по-прежнему равен нулю. Я ожидаю, что метод сможет изменить объект nil. Если у меня есть код, находящийся внутри метода, замените вызов метода, это приведет к тому, что он НЕ равен нулю.Передача указателя объекта nil в Objective-C
MyObject *objectTemp = nil;
[self methodCallWithObject:objectTemp];
if (objectTemp == nil) NSLog(@"nil");
else NSLog(@"NOT nil");
// always results in "nil"
метод:
-(void) methodCallWithObject:(MyObject)objectTemp {
objectTemp = [NSValue valueWithCGPoint:CGPointMake(5.3f, 2.6f)];
}
Дубликат этого: http://stackoverflow.com/questions/11737505/objective-c-pass-by-value-and -pass-by-reference –