iOS передает объект между View Controllers с сильной ссылкой
У меня есть серия ВК, посвященная редактированию профиля в стеке навигации. По мере углубления пользовательский объект передается в -prepareForSegue
, Моя проблема в этой конфигурации, все пользовательские профили, кажется, указывают на один объект, и если кнопка назад нажата после внесения изменений в текущий профиль, профиль в родительском контроллере также изменяется.
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([segue.identifier isEqualToString:@"ProfileToEdit"]) {
EditProfileTableViewController *editProfileVC = [segue destinationViewController];
editProfileVC.userProfile = self.userProfile;
editProfileVC.delegate = self;
}
У каждого VC есть свойство, объявленное в его файле.h, например:
@property (strong, nonatomic) UserProfile *userProfile;
Где userProfile - очень простой класс
@interface UserProfile : NSObject
@property (strong, nonatomic) NSMutableArray *cars;
@property (strong, nonatomic) NSString *phoneNumber;
@property (strong, nonatomic) NSString *name;
@property (strong, nonatomic) NSString *currentPassword;
@end
На мой взгляд, решение заключается в том, чтобы каждый контроллер содержал свою собственную копию объекта. Я не уверен, как правильно это реализовать. Это решит мою проблему?
@property (copy, nonatomic) UserProfile *userProfile;
Если да, то как я должен реализовать метод -copy в моем пользовательском объекте, так как у него его нет?