0

チェックリストアプリを持っていますが、アイテムの名前とチェックされているかどうかを保存したいと思います。
Xcodeは、保存したファイルがここにある必要があることを教えてくれます。

2012-11-11 20:24:42.726 Checklists[1459:c07] Documents directory /Users/astanciu/Library/Application Support/iPhone Simulator/6.0/Applications/F4A90B71-A8CF-4EF8-B628-508C8B50CAD0/Library/Documentation  
2012-11-11 20:24:42.728 Checklists[1459:c07] File path /Users/astanciu/Library/Application Support/iPhone Simulator/6.0/Applications/F4A90B71-A8CF-4EF8-B628-508C8B50CAD0/Library/Documentation/Checklists.plist

しかし、Libraryフォルダーには、キャッシュと設定しかありません。Finderを使用してChecklists.plistファイルがどこにも見つかりません。

MountainLion10.8とXcode4.5.2を使用しています。

コード:

-(void)saveChecklistItems
{
    NSMutableData *data = [[NSMutableData alloc] init];
    NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data];
    [archiver encodeObject:items forKey:@"ChecklistItems"];
    [archiver finishEncoding];
    [data writeToFile:[self dataFilePath] atomically:YES];
}

-(id)initWithCoder:(NSCoder *)aDecoder
{
    if(self = [super initWithCoder:aDecoder])
    {
        [self loadChecklistItems];
    }

    return self;
}

-(void)loadChecklistItems
{
    NSString *path = [self dataFilePath];
    if([[NSFileManager defaultManager] fileExistsAtPath:path])
    {
        NSData *data = [[NSData alloc] initWithContentsOfFile:path];
        NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data];
        items = [unarchiver decodeObjectForKey:@"ChecklistItems"];
    }
    else
    {
        items = [[NSMutableArray alloc] initWithCapacity:20];
    }
}

誰もがここで何が問題なのか考えていますか?ありがとう。

4

1 に答える 1

1

を決定するためのコードは表示されませんself dataFilePathLibrary/Documentation非標準のディレクトリを参照しているようです。

NSDocumentDirectoryコードではなく定数を使用することを意図してNSDocumatationDirectoryいたか、パスを決定する必要があります。または、ディレクトリに書き込もうとする前に、ディレクトリが存在することを確認する必要があります。

于 2012-11-11T18:44:29.687 に答える