麻烦在Xcode中创建并保存到文件

时间:2012-05-30 02:43:15

标签: objective-c xcode file save

我正在尝试运行一些示例代码,但在创建和保存到文件时遇到问题。

这是我的代码:

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

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

1 个答案:

答案 0 :(得分: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);
    }
}

此代码不会按原样运行,但它会打印出您遇到的任何错误,这些错误可以帮助您解决问题。