Re: [问题] 关于APP夹带的档案

楼主: Blueshiva (龙野南云)   2017-02-02 19:54:49
※ 引述《luckycan (罐头)》之铭言:
: 小弟不才,有幸加入iOS工程师的行列
: 今天正式上班,主管丢了题目下来
: 他说︰1.APP接收后端数据库图片,去修改APP夹带的图片
: 2.APP接收后端数据库资料,去修改strings档内多国语系显示的文字
: 举例来说︰
: 1.APP夹带了一张图片01.png,然后数据库传送新的01.png给APP,
: 将原本的图片永久取代,显示出新的01.png
: 2.strings档内的文字"a"="a1",有办法直接使用Xcode内码修改成"a"="a2"这样?
: 以上这两点有办法实现吗?
首先,你要先知道档案在App里面会有两种存放的地方,一个是bundle内,一个是你
程式可以存取的地方。
Bundle里面的档案只能读取,不能修改,也不能新增,必须由Xcode project里面加
入。
你程式可以存取的部分,则分成Document,tmp,Cache等等。
你的问题,如果你主管问的目的是要你去查询这两种档案存放区域的限制,那就回他
做不到。如果他是知道这两种区域的限制,却还是要你做到这样的功能,那就要从
code层面处理,不用内建的 NSLocalizedString 之类的 macro,而是自己实作这种
功能,从 Document 里面的档案把要的资讯读出来。
如果他不知道这两种区域的限制,却要你做出这样的功能,代表他根本不知道 iOS
开发的限制,如果你公司没有人可以教育他,那还是换工作可能会比较好...
作者: darktt (小朱)   2017-02-02 20:15:00
NSLocalizedString可以指定读那个档案,那就可以解决了
楼主: Blueshiva (龙野南云)   2017-02-02 20:22:00
只能设定由某个bundle读出来,没法指定特定档案吧?刚刚查到是这样
作者: yoshilin (明明可以靠脸吃饭)   2017-02-02 21:03:00
可以把server的档案下载到cache,显示时,如果cache没有就用bundle的
楼主: Blueshiva (龙野南云)   2017-02-02 21:35:00
但是就是不能直接用NSLocalizedString,要做自己的
作者: kokuyoku (天龙狂想曲)   2017-02-03 11:05:00
用NSLocalizedStringFromTableInBundle就可以指定bundle内的特定档案了抱歉 我弄错了这个没办法指定Document的档案
作者: charlesdc (MoOn)   2017-02-03 11:17:00
楼主: Blueshiva (龙野南云)   2017-02-03 11:27:00
@charlesdc 提供的这个方式太猛了,直接动态建立bundle
作者: charlesdc (MoOn)   2017-02-03 11:39:00
D大应该就是这意思
作者: benjenq (Ben(憋))   2017-02-03 17:55:00
问:要改写NSLocalizedString(key, comment)吗?
作者: shinrenpan (iOS5)   2017-02-03 18:00:00
NSLocalizedString 是marco, 基本上应该是用 mainbundle
作者: benjenq (Ben(憋))   2017-02-03 18:12:00
NSLocalizedString(x,x)默认去读NSBundle mainbundle透过以上方法,能把默认改到下载的table档?
作者: ssccg (23)   2017-02-03 22:33:00
NSLocalizedString是macro,可以undefine再define成自己的
作者: benjenq (Ben(憋))   2017-02-04 02:50:00
感谢ss大~系统macro也能undef,长知识了!
作者: darktt (小朱)   2017-02-04 11:13:00
不建议使用undef的方法,因为这在Swift是不适用的

Links booklink

Contact Us: admin [ a t ] ucptt.com