gpt4 book ai didi

ios - 在 iOS 中更新资源的简单方法(无需编译)

转载 作者:行者123 更新时间:2023-11-28 20:26:40 24 4
gpt4 key购买 nike

我想知道是否有任何方法可以改进 iOS 中程序员和设计人员的工作流程,而无需重新修改源代码控制或代码。

目前我有一位设计师与我一起工作,他对代码和源代码控制感到不自在。然后,每当他想在应用程序中间看到资源时,我都必须重新编译。

我可以使用网络服务,并且只获取每次应用程序启动时发生变化的资源。但是,如果他将大约 10 个视频更改为 10-20 兆(例如,新的压缩测试),我觉得这个解决方案可能会令人沮丧。

在 Windows 8 中,我可以用库文件夹中的资源创建一个文件夹,他可以访问它并替换资源。然后,应用程序可以加载该文件夹中的所有资源。但是我可以在 iOS 中做什么?没有 SD 卡(或外部硬盘驱动器),我认为我无法将资源放在一个文件夹中并将它们加载到应用程序中。

最佳答案

对我来说,我会通过将 UIFileSharingEnabled 添加到 Info.plist 来使我的应用程序在 iTunes 文件共享中可用

然后我用自定义方法包装我对加载资源的调用,例如:

- (NSString *)pathForImage:(NSString *)imageName
{
// Somewhere like this:
// /var/mobile/Applications/01234567-89AB-CDEF-0123-456789ABCDEF/Documents/images/
NSString *imagesPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
imagesPath = [imagesPath stringByAppendingPathComponent:@"images"];

NSString *path = [imagesPath stringByAppendingPathComponent:imageName];

if ([[NSFileManager defaultManager] fileExistsAtPath:path])
{
return path;
}
else
{
NSString *fileName = [imageName stringByDeletingPathExtension];
NSString *fileExt = [imageName pathExtension];
return [[NSBundle mainBundle] pathForResource:fileName ofType:fileExt];
}
}

并更改我的图片加载代码

[UIImage imageNamed:@"foo.png"];

[UIImage imageWithContentsOfFile:[self pathForImage:@"foo.png"]];

下次当设计师想要更新资源时,他/她可以打开 iTunes 并将新文件拖放到您的应用程序中。 iTunes File Sharing有关 iTunes 文件共享的更多信息,请查看 Apple's documentation

更新:如果您的应用不为最终用户使用 iTunes 文件共享,请记住通过删除 Info.plist 中的 UIFileSharingEnabled 将其关闭!否则 Apple 可能会拒绝您的应用,因为您启用了未使用的功能,这可能会使用户感到困惑。

关于ios - 在 iOS 中更新资源的简单方法(无需编译),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13663208/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com