Iphone 无法将NSDictionary保存到文件

Iphone 无法将NSDictionary保存到文件,iphone,nsdictionary,writetofile,Iphone,Nsdictionary,Writetofile,我想标题说明了一切。我使用了我在这里找到的一些示例代码,但不会创建该文件 - (id)init { [[NSBundle mainBundle] loadNibNamed:@"PadContent" owner:self options:nil]; if ([[NSFileManager defaultManager] fileExistsAtPath:[self filePathOfBookmarks]]) { bookmarks = [[NSMutableD

我想标题说明了一切。我使用了我在这里找到的一些示例代码,但不会创建该文件

- (id)init {
    [[NSBundle mainBundle] loadNibNamed:@"PadContent" owner:self options:nil];

    if ([[NSFileManager defaultManager] fileExistsAtPath:[self filePathOfBookmarks]]) {
        bookmarks = [[NSMutableDictionary alloc] 
                      initWithContentsOfFile:[self filePathOfBookmarks]];
    } else {
        bookmarks = [[NSMutableDictionary alloc] init];
        NSLog(@"file does not exist");
    }
    return self;
}

- (void)addBookmark:(id)sender{
    [bookmarks setObject:[dataInstance chapter] forKey:[[dataInstance chapter]title]];
    [bookmarks setObject:[dataInstance chapter] forKey:@"test"];
    NSLog(@"count: %d", [bookmarks count]);
    NSLog([self filePathOfBookmarks]);
    [bookmarks writeToFile:[self filePathOfBookmarks] atomically:YES];
}

- (NSString *) filePathOfBookmarks {
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *docDirectory = [paths objectAtIndex:0];
    return [docDirectory stringByAppendingPathComponent:@"bookmarks"];
}

你的字典里有什么?只有某些基本对象可以写出并读回,而无需您进行任何额外的工作。如果您的字典包含您定义的自定义对象,则需要使用另一种机制来写回数据,例如NSArchiver。我猜想
[dataInstance chapter]
产生的任何东西都不属于这些基本对象类型


有关可以自动读写的数据类型,请参阅NSDictionary的
WriteFile:atomicaly:
文档。还可以查看NSArchiver和NSCoding协议。

你的字典里有什么?只有某些基本对象可以写出并读回,而无需您进行任何额外的工作。如果您的字典包含您定义的自定义对象,则需要使用另一种机制来写回数据,例如NSArchiver。我猜想
[dataInstance chapter]
产生的任何东西都不属于这些基本对象类型


有关可以自动读写的数据类型,请参阅NSDictionary的
WriteFile:atomicaly:
文档。还要看看NSArchiver和NSCoding协议。

这可能就是原因!章是一个自制的课程。这可能是原因!第二章是一节自制的课。