Я немного экспериментировал с Objective-C и заметил, по крайней мере для меня, довольно странное поведение. Сначала я определяю указатель на NSString и добавляю его в NSArray:
NSString *s = @"A";
NSArray *a = [NSArray arrayWithOject: s];
Затем я распечатываю значение s, а также содержимое a:
NSLog(@"%@", s);
NSLog(@"%@", myArray);
и в обоих случаях выводом является A. Теперь, если я изменю указатель s, скажем
s = @"B";
затем два оператора NSLog выводят B и A. соответственно.
То есть указатель в моем массиве все еще указывает на @"A"
. После многих лет написания кода на Java это очень удивляет меня. Я что-то упускаю здесь что-то действительно фундаментальное?
Спасибо,
Майкл Кнудсен