【发布时间】:2014-03-22 18:32:36
【问题描述】:
我有一个对象“School”,它有一个可变数组属性“favoritesArray”和一个 NSString 属性“name”。
我有 2 个视图控制器“HomeViewController”和“FavoritesTableViewController”。
在我的 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);
但是它记录 0 意味着它没有取消存档在“HomeViewController”中存档的对象。
如何取消归档在单独视图控制器中的对象?
【问题讨论】:
-
如果完全相同的代码可以在同一个 ViewController 上运行,那肯定还有别的,你能展示一下你的“School”类的代码吗?
-
@rivtracks 你有什么解决办法吗,我也遇到了同样的问题。
标签: ios objective-c nskeyedarchiver nskeyedunarchiver