可変配列プロパティ「favoritesArray」と NSString プロパティ「name」を持つオブジェクト「School」があります。
「HomeViewController」と「FavoritesTableViewController」の2つのビューコントローラーがあります。
私の HomeViewController では、ボタンがタップされると、このメソッドが呼び出されます。
self.school=[[School alloc]init];
[self.school.favoritesArray addObject:self.school.name];
NSData *schoolData=[NSKeyedArchiver archivedDataWithRootObject:self.school];
[[NSUserDefaults standardUserDefaults] setObject:schoolData forKey:@"schoolData"];
次に、「FavoritesTableViewController」で、以前にアーカイブした「学校」オブジェクトのアーカイブを解除して、「favoritesArray」にアクセスできるようにします。
「FavoritesTableViewController」でボタンがタップされると、このメソッドが呼び出されます。
NSData *dataRetrieved=[[NSUserDefaults standardUserDefaults] objectForKey:@"schoolData"];
School *schoolTwo=[NSKeyedUnarchiver unarchiveObjectWithData:dataRetrieved];
NSLog(@"%lu", (unsigned long)schoolTwo.favoritesArray.count);
ただし、「HomeViewController」にアーカイブされたオブジェクトをアーカイブ解除しなかったことを意味する 0 をログに記録します。
別のView Controllerにアーカイブされたオブジェクトをアンアーカイブするにはどうすればよいですか?