用于获取路径的NSSearchPathForDirectoriesInDomains

时间:2013-08-19 03:27:28

标签: iphone objective-c nsarray

我正在尝试将NSArray写入文件。这是我用的代码

 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"GraphData.txt"];

[myArray writeToFile:filePath atomically:YES];

我找不到要保存文件的路径,因此尝试使用这段代码检索此文件会返回NUll

 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"GraphData.txt"];    
NSArray *myArray = [NSArray arrayWithContentsOfFile:filePath];
NSLog(@"FROM FILE::: %@ FROM FILE::", myArray);

我想在写入文件之前我需要先创建一个文件,但我不知道在哪里。我可以给出一个手动路径,例如。我的桌面或文档文件夹,并将数组写入文件,但我想当我尝试将其部署到真正的应用程序时它不会工作。所以,请帮忙

1 个答案:

答案 0 :(得分:0)

首先,您应该检查是否通过以下方式成功写出了数组:

BOOL success = [myArray writeToFile:filePath atomically:YES];
if(success == NO)
{
   NSLog( @"did not write file to %@", filePath );
}

请记住,如果数组的内容都是属性列表对象,则数组将只写出(例如“NSString”,“NSData”,“NSArray”或“NSDictionary”对象),否则您将通过“NO”BOOL返回“success”。