ナビゲーション スタックでのプロファイル編集専用の一連の 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 メソッドを実装するにはどうすればよいですか?