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];
}

我希望它在我按下第一个按钮时将第一个标签的文本保存到文件中。当我按下第二个按钮时,我希望它读取文件中的内容并制作第二个标签文本。但是,当我按下第二个按钮时,第二个标签就变成了空白。有什么建议么?

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 回答