pat*_*ick 38 xcode objective-c nsbundle
我正在使用xcode和objc创建一个简单的应用程序,我需要从文件加载NSDictionary,但我无法使用NSBundle获取该文件的路径:
NSString *l = [[NSBundle mainBundle] pathForResource:@"LoginStatuses" ofType:@"plist"];
NSLog(@"%@", l);
Run Code Online (Sandbox Code Playgroud)
当我运行此代码时,我得到了这个:
2010-10-16 10:42:42.42样本[5226:a0f](null)
我不知道为什么.
我创建了一个名为Resources的组,在那里我添加了LogingStatuses.plist:
Dar*_*ust 63
所以这是我获得源代码后解决这个问题的方法:
我没有真正关注发布的屏幕截图,但目标是" 命令行工具 "类型...并且因为那些没有捆绑[NSBundle mainBundle]
的课程返回nil.Xcode并没有抱怨它无法执行" 复制捆绑资源 "步骤,只是默默地跳过它,这是非常误导的.
解决方案只是添加" Application " 类型的新目标,以便生成基于bundle的应用程序.然后选中目标成员复选框,以获取此新目标的所有源和资源.然后正确解析plist路径.
小智 52
我试图让我的iPhone应用程序使用默认的sqlite数据库,而darn应用程序找不到它.原来我必须确保.sqlite文件在bundle资源中.
现在你的应用程序将找到这个默认的sqlite数据库.
Dar*_*ust 22
文件是否真的包含在目标中(因此会被复制到包中)?有两种方法可以找出/设置:
第一种方法:右键单击(或Cmd-click)文件,选择"获取信息".然后单击"目标"选项卡,确保检查文件中是否有所需的目标.
第二种方法:在项目浏览器中右键单击(或Cmd-clock)文件浏览器的标题(它可能会显示为"Groups&Files").然后选择"目标会员".现在,每个文件旁边都有一个复选框,可以是目标的成员(如.m文件或资源).再次确保选中文件旁边的复选框.
由于我在这里搜索过,没有找到答案,但后来我自己发现了,我会把它留在这里......
我为Retina提供了2个文件:tray.png和tray@2x.png.这些文件自动添加到"复制包资源"中.
但:
[[NSBundle mainBundle] pathForResource:@"tray" ofType:@"png"];
Run Code Online (Sandbox Code Playgroud)
没有返回实际复制到捆绑包的文件!原因是:IDE创建了一个TIFF文件tray.tiff(joint tray.png和tray@2x.png),所以... ofType:@"tiff"]
帮了!
归档时间: |
|
查看次数: |
42338 次 |
最近记录: |