0

サンプルコードを実行しようとしていますが、ファイルの作成と保存に問題があります。

これが私のコードです:

-(IBAction) example
{
    NSFileManager *fm = [[NSFileManager alloc] init];
    NSURL *docsurl = [fm URLForDirectory:NSDocumentDirectory inDomain:NSUserDomainMask  appropriateForURL:nil create:YES error:nil];
    myfolder = [docsurl URLByAppendingPathComponent:@"MyFolder"];
    NSError * err = nil;
    BOOL ok = [fm createDirectoryAtURL:myfolder withIntermediateDirectories:YES attributes:nil error:&err];
    ok = [label.text writeToURL:myfolder atomically:YES encoding:NSUTF8StringEncoding error:nil];       
}

-(IBAction) load
{
    label2.text = [[NSString alloc] initWithContentsOfURL:myfolder
    encoding:NSUTF8StringEncoding error:nil];
}

最初のボタンを押したときに、最初のラベルのテキストをファイルに保存したいと思います。2番目のボタンを押すと、ファイルの内容を読み取って、2番目のラベルテキストをそのようにします。ただし、2番目のボタンを押すと、2番目のラベルが空白になります。助言がありますか?

4

1 に答える 1

0

これらの NSError オブジェクトを実際に使用することをお勧めします。また、デフォルトの NSFileManager を使用することをお勧めします。

-(IBAction) example
{
    NSFileManager *fm = [NSFileManager defaultManager];
    NSError *error;
    NSURL *docsurl = [fm URLForDirectory:NSDocumentDirectory inDomain:NSUserDomainMask  appropriateForURL:nil create:YES error:&error];
    myfolder = [docsurl URLByAppendingPathComponent:@"MyFolder"];
    NSError * err = nil;

    if ([fm createDirectoryAtURL:myfolder withIntermediateDirectories:YES attributes:nil error:&err]) {
        if ([label.text writeToURL:myfolder atomically:YES encoding:NSUTF8StringEncoding error:&err]) {

        }
        else {
            NSLog(@"%@", err);
        }
    }
    else {
        NSLog(@"%@", err);
    }


}

-(IBAction) load
{
    NSError *err;
    if ([[NSString alloc] initWithContentsOfURL:myfolder
    encoding:NSUTF8StringEncoding error:&err]) {
        label2.text = [[NSString alloc] initWithContentsOfURL:myfolder
    encoding:NSUTF8StringEncoding error:nil];
    }
    else {
        NSLog(@"%@", err);
    }
}

このコードはそのままでは機能しませんが、問題の解決に役立つはずのエラーが出力されます。

于 2012-05-30T05:25:05.907 に答える