chi*_*zle 24 iphone xcode bundle objective-c ios
我想在我的应用程序中添加一些静态文件(图像,二进制等).我把它们放在一个名为的文件夹下Resources,并将它添加到我的XCode项目中.
接下来,我将这些文件添加到项目设置Copy Bundle Resources的Build Phases选项卡中.
但是,我似乎无法以正确的方式提及它们.
例如,读取二进制文件:
NSInputStream *is = [[NSInputStream alloc] initWithFileAtPath:@"data.bin"];
if(![is hasBytesAvailable]) NSLog(@"wrong");
Run Code Online (Sandbox Code Playgroud)
这总是失败并打印 wrong
我尝试了类似的方法,NSData initWithContentsOfFile:但这甚至都不会执行.另一种尝试是使用,[NSBundle mainBundle]但这也没有完全执行.
我是iOS的新手,请帮助我访问我的本地文件!任何帮助,将不胜感激.
谢谢,
Jim*_*yes 30
您需要确保在正确的位置访问该文件.Xcode将资源文件放在Resources目录中的应用程序的"应用程序包"中.有很多方法可以挖掘它们.
一种常见的方法是获取包中文件的路径名:
NSBundle *mainBundle = [NSBundle mainBundle];
NSString *myFile = [mainBundle pathForResource: @"data" ofType: @"bin"];
Run Code Online (Sandbox Code Playgroud)
如果您的捆绑包中有非标准位置的其他文件,则pathForResource会有变体,您可以指定目录名称.
如果你想查看模拟器正在使用的硬盘上的实际位置,你可以检查它,你可以说:
NSLog(@"Main bundle path: %@", mainBundle);
NSLog(@"myFile path: %@", myFile);
Run Code Online (Sandbox Code Playgroud)
在Xcode文档库中搜索"Bundle Programming Guide"以开始使用.:-)
| 归档时间: |
|
| 查看次数: |
36630 次 |
| 最近记录: |