網頁

2013年1月27日 星期日

iOS開發筆記 - 取得iOS裝置的UDID

開發過iOS app的人都知道,當要給客戶測試時,總要跟客戶要裝置碼,註冊其為開發用,但客戶一來裝置是平日在用的,二來用iTune雖容易取得,但他們也不會用,教也教半天,看iOS SDK開發裝置大全,才知道作者Erica Sadun有上架一個Ad Hoc Helper可取得客戶的UDID再直接mail,真的很方便。

名稱:Ad Hoc Helper
Link: http://itunes.com/apps/adhochelper

方便的工具要多用,哈哈

2013年1月26日 星期六

iOS開發筆記 - 讓APP每次都重新執行

在iOS 4後,APP都會在背景執行著,但有時總是會希望程式能重頭執行過,其實在info.plist中是有這個設定的

新增Application does not run in background,設成YES,就可以用囉~

參考網址:
Using the applicationWillTerminate method doesn't seem to be working…or I am not using it right
iOS SDK開發範例大全:第一章 p21, p37

2013年1月16日 星期三

Spring、J2EE學習筆記-Thread: java.net.NoRouteToHostException

這個是單純無法連線到的問題,確定步驟

1. 先ping此ip
2. 用telnet去連看看
3. 確定防火牆有無開放

基本上這樣差不多就知道問題了

參考網址:
Thread: java.net.NoRouteToHostException: No route to host while install NOSQL
omcat 運行時出現Cannot create PoolableConnectionFactory (到主機的TCP/IP 連接失敗...

iOS開發筆記 - 多國語言化的第一步

最近想要將程式做個多國語言化,想將預設改成英文,先到Targets的info中,找到“Localization native development region”改成英文,如下圖


新增“Localizations”,加入“Chinese (traditional)”

再來回到Project的info,找到Localizations,如下圖



點選“+”,出現下圖,新增繁體中文(目前繁體中文為zh-Hant、簡月zh-Hans),別自作主章,往Other那邊再選下去,雖然會看到繁體中文可選,但那是沒有用的,功能不work

再來隨便選一個xib檔(若沒有就不用了),會看到右邊有個“Localizations”,裡頭已有“English”及“Chinese-Taiwan”,將“Chinese-Taiwan”勾選起來


出現底下的訊息,確定哪些已存在的檔案都要有這語言,直接全選按finish吧



再來就會看到ViewController.xib多出了繁體中文,就加入自己想加入的資料吧。

APP的顯示名稱若也想要多國語言版,找到info.strings這檔案,先確定它有沒有多國語系化,若像下圖表示沒有,先轉成UTF-16後,再按“Make localized...”即可


英文版的info.strings加入CFBundleDisplayName="English";
中文版的info.strings加入CFBundleDisplayName="中文";

記得加逗號,這樣就行了。

再來加入Localizable.strings,這才是重點。新增一個檔案,如下圖,選Strings file,命名為Localizable.strings

再來跟info.strings一樣讓它多國語系化。再來程式加入多國語系的程式碼,例如:

NSString *test = @"中文123";
改成 
NSString *test = NSLocalizedString(@"test label" , @"This is test");

在繁體中文的Localizable.strings加入 "test label"="中文123";
在英文的Localizable.strings加入        "test label"="English123";

這樣在英文語系就會顯示English123,繁體中文為中文123囉

NSLocaliaedString的第二個變數是comment用,若使用自動產生的工具,就會用到它。這部分就之後再說吧。

用模擬器測試,從中換到英,基本上可以只換語言,但地區也換會更準




然後就等待系統轉換語系,就可以看到設定變Setting,就可以查看自己剛做的囉

參考網址:


2013年1月10日 星期四

iOS開發筆記 - 取得目前裝置最大寬高


iphone 5尺寸改變真是令人煩,所有app都得想法子配合它,記下這個寫法吧,還蠻方便的

//取得status bar除外的寬高
CGRect r = [ UIScreen mainScreen ].applicationFrame;
r=0,20,320,460

//取得整個裝置的寬高
CGRect rx = [ UIScreen mainScreen ].bounds;
rx=0,0,320,480

參考網址:
UIScreen 获取iphone屏幕宽度

2013年1月6日 星期日

Javascript學習筆記-適用各瀏覽器的XML load

最近幫朋友一件事,案子正常是要求很蠢,一個超大的電信商,居然用ie6,還無法更動,果然公司越大就越難以改變,難怪台灣的網路永遠都這麼爛~

抱怨完了,回到原題,總之,需求如下:

  1. firefox及chrome要能使用(原本不行)
  2. ie 6、ie 7依然要能正常使用,因為他們內部的網站都用這個才能正常執行,所以不可以不能用

看了他們的code後,才知道是load xml的問題,只要改成以下的做法即可....

//firefox、chrome、ie 9之後
if (document.implementation && document.implementation.createDocument){
    var xhr = new XMLHttpRequest;
    xhr.open('get',test.xml",true);
    xhr.onreadystatechange = function(){
        if (xhr.readyState != 4) return;
        xmlDoc = xhr.responseXML;
        //做你要的事
    };
    xhr.send();
}

//ie 6、ie 7、ie 8
else if (window.ActiveXObject){
    xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
    xmlDoc.onreadystatechange = function () {            
        if (xmlDoc.readyState == 4){
           //做你要的事
        }
    };
    xmlDoc.async = false;
    xmlDoc.load(test.xml");
}


有些事,知道了很簡單,不知道時,做到死....

參考網址:
xml load

2013年1月2日 星期三

jQuery開發筆記-append及appendTo

不知道認知對或不對,但今天實際測試的結果,append比appendTo的速度快很多,例如:

var a = $('<div>123</div>');
var b = $('<div>123</div>');

a.append(b);
b.appendTo(a);


兩者的結果相同,但實際在使用時,後者的速度會慢的多....不過我是沒有實際用數值測過,只是單純在大量的append後,reuse某個jQuery slides這個plugin,後者會來不及load到做好的element,前者則都不會有問題。