我正在尝试创建一个文件夹内容的NSStrings数组,我已将其拖入项目...但是当我计算数组中的项目之后,它总是返回0;
所以,我项目中的文件夹看起来像这样
-Cards
-Colors
Blue.png
Green.png
Orange.png
Yellow.png
Purple.png
Black.png
我试图获取此文件列表(颜色png)的代码是
NSError *error = nil;
NSString *pathString = [[NSString alloc] init];
pathString = [[NSString alloc] initWithString:@"/Cards/Colors/"];
NSArray *fileList = [[NSArray alloc] init];
fileList = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:pathString error: &error];
[pathString release];
NSLog(@"%@", error);
// this is always 0
NSLog(@"file list has %i items", [fileList count]);
我得到的NSError是
Error Domain=NSCocoaErrorDomain Code=260 "The operation couldn’t be completed. (Cocoa error 260.)" UserInfo=0x596db00 {NSUserStringVariant=(
Folder
), NSFilePath=/Cards/Color/, NSUnderlyingError=0x5925ef0 "The operation couldn’t be completed. No such file or directory"}
我出错的任何想法?
答案 0 :(得分:6)
您正在将pathString
初始化为绝对路径/Cards/Colors/
。此路径是系统范围的路径,因此在iPhone上,远离应用程序的沙箱。
请改为尝试:
NSString *pathString = [[NSBundle mainBundle] pathForResource:@"Cards/Colors" ofType:nil];
NSArray *fileList = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:pathString error: &error];
(请注意,您在问题中使用代码的方式是alloc / init fileList
,然后通过为其分配contentsOfDirectoryAtPath:error:
的结果来立即泄漏对象。这是一个错误。)