我有一个自定义类“书签”,其中包含一个NSString
. 我使用 aNSMutableArray
来存储此类的实例,从而制作了一个书签列表,我UITableView
用UITableViewCell
原型将其显示在 a 中。
有人可以就如何将实例保存NSMutableArray
到文件中提供一些建议/示例(也许还有如何加载它们的示例)。我找不到任何我搜索过的例子。我尝试将数组转换为NSData
并使用NSKeyedArchiver
但没有成功。我也尝试过转换为 anNSArray
但无法正常工作。
在我实现的自定义类中encodeWithCode
,initWithCoder
.
我需要在应用程序关闭之前保存,并且我想在应用程序启动时加载列表。
我被困住了... :(
编辑:应 Ageektrapped 的要求,以下是代码片段:
在我的 Bookmark 类的实现中:
- (void) encodeWithCoder: (NSCoder *) encoder
{
[encoder encodeObject:self.address forKey:@"Address"];
}
- (id) initWithCoder: (NSCoder *) decoder
{
self = [super init];
if (self != nil)
{
self.address = [decoder decodeObjectForKey: @"Address"];
}
return self;
}
在我的 MasterViewController
self.bookmarks
是一个NSMutableArray
包含书签对象。(当调用下面的代码时,书签数组中至少有一个条目。)
NSString *docFolder = [NSSearchPathForDirectoriesInDomains(NSDocumentationDirectory,NSUserDomainMask,YES) lastObject];
NSString *filename = [docFolder stringByAppendingPathComponent:@"data.plist"];
NSLog(@"File : %@", filename);
NSLog(@"Bookmarks : %d", self.bookmarks.count);
NSData *data = [NSKeyedArchiver archivedDataWithRootObject: self.bookmarks ];
if ([data writeToFile: filename atomically: YES])
{
NSLog(@"Successful write");
} else {
NSLog(@"Failed write");
}