作者Blueshiva (龙野南云)
看板MacDev
标题Re: [问题] 关於APP夹带的档案
时间Thu Feb 2 19:54:49 2017
※ 引述《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
开发的限制,如果你公司没有人可以教育他,那还是换工作可能会比较好...
--
Luna quieres ser madre
y no encuentras querer
que te haga mujer
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 118.160.160.101
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/MacDev/M.1486036492.A.873.html
1F:→ darktt: NSLocalizedString可以指定读那个档案,那就可以解决了 02/02 20:15
2F:→ Blueshiva: 只能设定由某个bundle读出来,没法指定特定档案吧?刚 02/02 20:22
3F:→ Blueshiva: 刚查到是这样 02/02 20:22
4F:推 yoshilin: 可以把server的档案下载到cache,显示时,如果cache没有 02/02 21:03
5F:→ yoshilin: 就用bundle的 02/02 21:03
6F:→ Blueshiva: 但是就是不能直接用NSLocalizedString,要做自己的 02/02 21:35
7F:→ kokuyoku: 用NSLocalizedStringFromTableInBundle就可以指定bundle 02/03 11:05
8F:→ kokuyoku: 内的特定档案了 02/03 11:05
9F:→ kokuyoku: 抱歉 我弄错了这个没办法指定Document的档案 02/03 11:08
11F:→ Blueshiva: @charlesdc 提供的这个方式太猛了,直接动态建立bundle 02/03 11:27
12F:→ charlesdc: D大应该就是这意思 02/03 11:39
13F:→ benjenq: 问:要改写NSLocalizedString(key, comment)吗? 02/03 17:55
14F:→ shinrenpan: NSLocalizedString 是marco, 基本上应该是用 mainbun 02/03 18:00
15F:→ shinrenpan: dle 02/03 18:00
16F:→ benjenq: NSLocalizedString(x,x)预设去读NSBundle mainbundle 02/03 18:12
17F:→ benjenq: 透过以上方法,能把预设改到下载的table档? 02/03 18:13
18F:→ ssccg: NSLocalizedString是macro,可以undefine再define成自己的 02/03 22:33
19F:推 benjenq: 感谢ss大~系统macro也能undef,长知识了! 02/04 02:50
20F:推 darktt: 不建议使用undef的方法,因为这在Swift是不适用的 02/04 11:13