iOS在具有强引用的View Controllers之间传递对象

时间:2014-11-19 13:32:05

标签: ios copy automatic-ref-counting strong-references

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

 - (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 个答案:

没有答案