将文件夹添加到iPad软件包可在模拟器上运行,而不是在设备上

时间:2011-09-15 12:58:11

标签: ios ipad directory bundle target

我的应用有两个目标 每个都有自己的文件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。

1 个答案:

答案 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];
}