作者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/m.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