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