我有一個自定義類「Bookmark」,其中包含NSString
。我使用NSMutableArray
來存儲此類的實例,從而製作一個書籤列表,我使用UITableViewCell
原型在UITableView
中顯示。保存包含自定義類對象的NSMutableArray的內容
有人請給出一些關於如何將NSMutableArray
中的實例保存到文件(也可能是如何加載它們的示例)的建議/示例。我找不到任何我搜索過的例子。我試過將數組轉換爲NSData
,並使用NSKeyedArchiver
沒有成功。我也嘗試轉換爲NSArray
,但無法使其正常工作。
在自定義類中,我實現了encodeWithCode
和initWithCoder
。
我需要在應用程序關閉前保存並且我想在應用程序啓動時加載列表。
我卡住了... :(
編輯:在Ageektrapped的要求,這裏的代碼片段:
我的書籤類的實現內部:
- (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
(當下面的代碼被調用時,存在l東一個書籤陣列中的一個條目)。
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");
}
,你能否告訴我們encodeWithCoder:和的initWithCoder:方法實現?並將該數組保存到文件的代碼? – ageektrapped 2013-04-06 11:25:56