2011-07-06 129 views
0

我在iPhone中使用以下代码将字符串写入存储在我的i​​Phone项目资源文件夹中的文件中。当我尝试读取它的数据读取成功,但是当我尝试写它不写入文件,虽然其aloso不给我任何错误。字符串没有写入文件 - iPhone

这是我的代码:

NSString *myString; //Assuume the string you want to write is this 
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,  NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"myfile.txt"]; 
[myString writeToFile:path atomically:YES]; 

请任何人可以指导。

+0

有没有人可以帮忙! – Shah

+0

您是否尝试过使用'writeToFile:atomically:encoding:error:'方法?它返回一个错误。这可以提供帮助。 –

+0

您需要比24分钟后回复更有耐心!您是否尝试过使用writeToFile:atomically:encoding:error来查看您收到的错误消息? –

回答

0

writeToFile:atomically:已在iOS 2.0中被depredecated。使用writeToFile:原子:编码:错误:代替。您应该检查字符串的内容,例如通过NSLog()函数。不适当的初始化可能导致失败。

NSLog(@"%@", myString); 
[myString writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:NULL]; 
+0

是的,它有数据..以及..我试图使用编码和错误,它仍然没有写入文件... – Shah

+0

我刚刚用你的问题用writeToFile测试代码:atomically:encoding :错误:。有用。你在磁盘上有空闲空间吗?你正在寻找正确的目录中的文件? –

+0

m done ... wid that Thankss – Shah

1
- (void) testStringReadWrite { 
    NSString *myString = @"abcd efgh"; 
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsDirectory = [paths objectAtIndex:0]; 
    NSString *path = [documentsDirectory stringByAppendingPathComponent:@"myfile.txt"]; 
    CFShow(path); 
    NSError *error = nil; 

    [myString writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:&error]; 
    if (error) { 
     NSLog(@"%@",error); 
    } 


    NSString *readString = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:&error]; 
    if (error) { 
     NSLog(@"%@", error); 
    } else { 
     CFShow(readString); 
    } 

} 
0

只是我的两分钱,从OS X的到来,我习惯叫writeToURL(),而不是writeToFile()。原来,writeToFile()是适用于iOS的那个。