繁体   English   中英

将文件夹添加到iPad捆绑包适用于模拟器,而不适用于设备

[英]Adding folder to iPad bundle works on simulator, not on device

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

如果我尝试在设备上调试该应用程序,则捆绑路径和文件夹名称正确,但是文件夹字符串为null。
我已经检查了我的应用程序产品的内部,并找到了包含所有文件的正确文件夹。
所以有什么问题? 这是读取权限问题吗?

更新在iPad Simulator中运行的结果路径是这样

/ * /库/应用程序支持/ iPhone模拟器/4.3.2/Applications/8337B9E5-1BFE-4A17-969E-E3E6E43193D6/MyApp.app/CustomFolder/

更新2的问题是我添加了带有“为任何添加的文件夹创建文件夹引用”的文件夹。
我用stringByAppendingPathComponent替换了pathForResource,但是问题仍然存在于subpathsOfDirectoryAtPath。

您必须确保使用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];
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM