mic*_*ael 55 bundle assets ios
我在我评估的iOS项目中看到了一个自定义资产包,所以至少我知道它是可能的.
我的问题是我使用的CATiledLayer对于给定的图像大约有22,000个图块,编译需要很长时间(半小时清理版本,常规版本需要5-10分钟).因此,我希望获取所有图像并制作自定义包以使其可移植,并且希望每次都不会重新编译到应用程序包中.
我该怎么做?我检查了文档,但没有看到如何实际创建包的解释.
mic*_*ael 95
答案很简单
在finder中创建一个文件夹,向其中添加文件,将其重命名为bundlename.bundle
拖入Xcode - 成功!
访问,使用PathToMainBundle +"/ bundlename.bundle"的形式
hfo*_*sli 37
如何创建一个包
.bundle(例如"New folder" - >"BundleName.bundle")PS:您可以随时右键单击该文件夹并点击"显示包内容"以添加,删除或修改任何文件.
如何将捆绑包添加到Xcode
如何使用捆绑
NSString *bundlePath = [[NSBundle mainBundle] pathForResource:@"BundleName" ofType:@"bundle"];
NSBundle *bundle = [NSBundle bundleWithPath:bundlePath];
NSString *resource = [bundle pathForResource:@"fileName" ofType:@"fileType"];
Run Code Online (Sandbox Code Playgroud)
(替换BundleName,fileName并fileType使用适当的名称)
Har*_*ngh 26
另外两个有用的建议:
首先,为了在XCode中查看包的内容,您需要在File Inspector Utility窗格中将其类型设置为"Application Bundle".您仍然无法通过XCode复制和复制.您需要使用终端,但XCode会立即更新它.
其次,为了在捆绑中使用资源,这里是一个有用的代码片段......
NSString *bundlePath = [[NSBundle mainBundle] pathForResource:@"AquarianHarp" ofType:@"bundle"];
NSString *imageName = [[NSBundle bundleWithPath:bundlePath] pathForResource:@"trebleclef2" ofType:@"png"];
UIImage *myImage = [[UIImage alloc] initWithContentsOfFile:imageName];
Run Code Online (Sandbox Code Playgroud)
正如我在上面的评论中所提到的,你不需要实际加载bundle(你不能因为它不可执行)以及ofType需要匹配你的实际文件的情况才能在设备上工作.它将在模拟器中以任何方式工作,所以不要被这个红鲱鱼欺骗!
最后,您不需要将资源放在bundle中的"Resources"子文件夹中.您似乎可以使用任意布局,但可能会有未知的性能影响.
Lan*_*tly 10
以下是我如何使用它:在XCode中创建一个新文件 资源| 设置捆绑.然后在Finder中选择该包并选择"显示包内容",并添加任何图像文件.
然后在代码中以这种方式引用图像:
NSString *imgName = @"bundlename.bundle/my-image.png";
UIImage *myImage = [UIImage imageNamed:imgName];
Run Code Online (Sandbox Code Playgroud)
以下是创建资产或资源包(例如)的步骤FrameworkResources.bundle- 令人惊讶的是,它并不明显。如果您正在创建静态框架,这尤其有用。
SDKROOT) 更改为“iOS”| 归档时间: |
|
| 查看次数: |
50296 次 |
| 最近记录: |