2015年8月22日 星期六

[IOS] 自動區分Debug和Release的方法


http://www.swwritings.com/post/2013-05-20-concurrent-debug-beta-app-store-builds/

另外在多語言版本必須另外再使用其它的script
我參考:
http://stackoverflow.com/questions/27799432/localizing-info-plist-variable-with-appended-string

寫了以下的
PREFIX_IDENTIFIER="=suffix="
PREFIX=""

if [ "$CONFIGURATION" == "Debug" ]
then
    PREFIX="-α"
fi

if [ "$CONFIGURATION" == "Ad Hoc" ]
then
    PREFIX="-β"
fi

BASEDIR=`dirname "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}"`

for i in "$BASEDIR"/*.lproj/InfoPlist.strings
do
    plutil -convert json "$i"
    sed -i -e "s/${PREFIX_IDENTIFIER}/${PREFIX}/g" "$i"
    plutil -convert binary1 "$i"

done
"CFBundleDisplayName" = "APP名稱=suffix=";

因為在我遇到的環境$CONFIGURATION == Ad Hoc時
資料夾的路徑會被中斷
所以把他獨立寫出來用雙引號使空白不會被中斷

2015年8月11日 星期二

[iOS] 基本知識

1.   64-bit Tips
2. 《招聘一个靠谱的iOS》面试题参考答案
3.  刨根问底Objective-C Runtime(1)- Self & Super
4.  超全! iOS 面試題匯總
5.  objc.io
6. iOS面試一般性問題

[iOS] WebView loadHTMLString clear css cache every time

在iOS寫一個WebView
常常打開過的內容都會cache住
如果下一次打開時都還會是使用上一次的CSS設定

查找了資料通常都是使用

[[NSURLCache sharedURLCache] removeAllCachedResponses];
因為我是用

- (void)loadHTMLString:(NSString *)string baseURL:(NSURL *)baseURL;

就算加了removeAllCachedResponses
還是要等到App從記憶體消失時才會重新載入CSS
於是參考了這篇的作法
每次loadHTMLString時直接更改css的版本
欺騙UIWebView讓它以為每次讀取的css都不一樣

NSString *contentString = [htmlString stringByReplacingOccurrencesOfString:@"style.css" withString:[NSString stringWithFormat:@"style.css?time=%@", [[NSDate date] description]]];
[self.webView loadHTMLString:contentString baseURL:nil];
refer:http://stackoverflow.com/questions/3549508/prevent-caching-of-css-files-in-uiwebview-loaded-from-disk