Я читаю книгу под названием Java и C: основные различия, Learn Objective-C для разработчиков Java.(мой опыт работы с C # / Java, так что концепция указателей и управляемой памяти для меня нова, поэтому, пожалуйста, потерпите меня)
В главе 2 в этом разделе поясняются указатели на следующем примере:
int i = 1;
int *iptr;
iptr = &i;
*iptr = 2;
Я понимаю выше, где *iptr
- указатель, ему назначается место в памяти i
, также из указателя iptr
мы можем получить доступ к значению iptr
, указанному с помощью синтаксиса *iptr
.
Далее в книге есть следующий фрагмент:
//..
NSMutableString *z = [[[NSNutableString alloc]init] autorelease];
[z appendString:@"Zombie "];
//...
Насколько я понимаю из главы 2, строка [z appendString:@"Zombie "]
должна была быть [*z appendString:@"Zombie "]
вместо этого, поскольку мы хотим, чтобы фактическаяNSMutableString
, а не его указателю, для отправки сообщения appendString
!?Я знаю, что ошибаюсь, и что-то упускаю, пожалуйста, укажите мне правильное направление.
Большое спасибо,
Джузеппе