0

タイトルがすべてを物語っていると思います。ここで見つけたサンプルコードを使用しましたが、ファイルは作成されません。

- (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"];
}
4

1 に答える 1

5

あなたの辞書には何がありますか?追加の作業なしで書き戻したり読み戻したりできる特定のベースオブジェクトのみがあります。ディクショナリに定義したカスタムオブジェクトが含まれている場合は、NSArchiverなど、別のメカニズムを使用してデータを読み書きする必要があります。[dataInstance chapter]これらの基本的なオブジェクトタイプには、歩留まりが何であれ含まれていないと思います。

writeToFile:atomically:自動的に読み書きできるデータ型については、NSDictionaryのドキュメントを参照してください。NSArchiverとNSCodingプロトコルも見てください。

于 2011-04-27T14:32:53.663 に答える