我正在尝试运行一些示例代码,但在创建和保存到文件时遇到问题。
这是我的代码:
-(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];
}
当我按下第一个按钮时,我希望它将第一个标签的文本保存到文件中。当我按下第二个按钮时,我想让它读取文件中的内容并制作第二个标签文本。但是当我按下第二个按钮时,第二个标签就会变成空白。 有什么建议?
答案 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);
}
}
此代码不会按原样运行,但它会打印出您遇到的任何错误,这些错误可以帮助您解决问题。