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 в моем пользовательском объекте, так как у него его нет?

0 ответов

Другие вопросы по тегам