1

我有一系列专门用于在导航堆栈中进行配置文件编辑的 VC。随着您深入,自定义对象userProfile被传入-prepareForSegue。我的问题是在此配置中,所有 userProfiles 似乎都指向一个对象,如果在对当前配置文件进行更改后按下后退按钮,则父控制器中的配置文件也会更改。

 - (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 方法,因为它没有?

4

0 回答 0