我的应用有两个目标 每个都有自己的文件Info.plist和自定义文件夹(作为参考,而不是组) 当我在模拟器上运行目标时,文件夹正确地插入到包中,其中的文件被读取没有问题 这是读取文件夹路径的代码:
NSBundle* mainBundle;
NSString *fileFolder;
mainBundle = [NSBundle mainBundle];
NSLog(@"Bundle path: %@", [mainBundle bundlePath]);
NSLog(@"Folder name: %@", [mainBundle objectForInfoDictionaryKey:@"CustomFolder"]);
NSString *folder = [mainBundle objectForInfoDictionaryKey:@"CustomFolder"];
fileFolder = [[[NSBundle mainBundle] pathForResource:folder ofType:nil] retain];
NSLog(@"Folder: %@", fileFolder);
如果我尝试在设备上调试应用程序,则Bundle路径和文件夹名称是正确的,但文件夹字符串为空。
我已经检查了我的应用程序产品,并且有正确的文件夹,包含所有文件
所以有什么问题?这是读取权限问题吗?
更新 在iPad Simulator中运行的结果路径是
/ * / Library / Application Support / iPhone Simulator / 4.3.2 / Applications / 8337B9E5-1BFE-4A17-969E-E3E6E43193D6 / MyApp.app / CustomFolder /
更新2 问题是我添加了文件夹“为任何添加的文件夹创建文件夹引用” 我用stringByAppendingPathComponent替换了pathForResource,但是现在问题仍存在于subpathsOfDirectoryAtPath。
答案 0 :(得分:0)
您必须确保在iPad内存中使用正确的位置。你在模拟器上保存的东西没有限制。此代码有效
+(NSString*) pathToDocumentsFolder
{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
return documentsDirectory;
}
+(NSString*) pathToFileInDocumentsFolder:(NSString*)filename
{
NSString *pathToDoc = [NSBundle pathToDocumentsFolder];
return [pathToDoc stringByAppendingPathComponent:filename];
}