У меня возникли проблемы с пониманием того, что происходит с этими двумя строковыми свойствами, объявленными в отдельных классах:
@property (nonatomic, copy) NSString *userPhone;
и
@property (nonatomic, copy) NSString *userLogin;
Где-то в коде я иду и делаю следующее:
user.userPhone = self.userLogin;
Я ожидаю, что userLogin
будет скопирован в новый объект и назначен на userPhone
.Однако я обнаружил, что они оба имеют ссылку на один и тот же объект!Поэтому, когда userLogin
выпускают, так же, как и userPhone
, ломая мое плохое приложение.
Я знаю, что здесь что-то упускается из-за управления памятью, но я не понимаю, почему copy
не работаетв этом случае.
Кто-нибудь знает?
Большое спасибо