-
01-10-2019 - |
题
我遇到了这个有线问题,我无法从文件中获取内容,并使用它启动NSMutableArray。
这是我的代码:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSLog(@"Does file exist?: %i", [[NSFileManager defaultManager] fileExistsAtPath:[NSString stringWithFormat: @"%@/length.txt", documentsDirectory]]);
NSMutableArray *tempArr;
tempArr = [[NSMutableArray alloc] initWithContentsOfFile:[NSString stringWithFormat: @"%@/length.txt", documentsDirectory]];
尝试此操作时,initwithContentsOffile返回(null)。该行检查文件是否存在的行将“ 1”打印到控制台。
这是我用来保存数据的代码:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
[length.text writeToFile:[NSString stringWithFormat: @"%@/length.txt", documentsDirectory] atomically:NO];
我或多或少在其他程序中使用了几乎完全相同的代码,没有问题。
在这里真的需要一些帮助,也许我现在只是盲目...
解决方案
Nsarray的文档 initWithContentsOfFile:
方法说:
返回值 初始化的数组以包含Apath或NIL指定的文件的内容,如果无法打开文件或文件的内容无法将其解析为数组。返回的对象可能与原始接收器不同。
您不包括声明 length
在您的代码段中,但我猜那是 length.text
返回NSString对象,而不是NSArray。因此,您需要使用文件从文件中读取该文件 initWithContentsOfFile:
来自nsstring,而不是nsarray。
其他提示
当您尝试从文件的内容创建数组时, 文件 必须 处于PLIST格式, ,最外面的plist元素必须是 <array>
. 。如果没有这种格式,初始化将失败,您的数组将是 nil
.
您正在通过编写一个文件来创建文件 NSString
到一个文件,这意味着您可能应该将其阅读到 NSString
, ,不是 NSArray
.
不隶属于 StackOverflow