2012年4月25日 星期三

iOS學習_Error launching remote program: failed to get the task for process

今天早上挑戰連寫一小時都不debug,最後在實機上執行果然出現恐怖的事情,按下Run後程式的確安裝進去,但是一瞬間iPad又跳回桌面,並且Xcode出現警告訊息:Error launching remote program: failed to get the task for process OOO。

因為iOS只有在執行debug模式時才能看到log資訊,若是直接在iPad上執行App是無法看到錯誤內容的(與Android不同),所以這個問題就變得非常嚴重。

網路上找了一段時間,看到一些有點沒來由的解決方法,絕大部分都說要對entitlements.plist進行處理,但...我根本從來沒碰過那個設定檔呀,也有人說只要刪除實機上的App,並Clear專案後就會恢復,後來有人提到簽證問題,才想到前幾天有去業主那邊以Ad-Hoc方式安裝程式,可能有調整到設定。

最後發現專案的Debug的Build Configuration設定錯誤,將他改回Debug就回復正常。




如果你遇到相同的錯誤,可能是因為其他跟簽證有關的設定,所以確認與簽證相關的設定是否都正確,並在完成修改後Clear專案再執行一次。

Good Luck

2012年4月11日 星期三

iOS學習_presentModalViewController螢幕旋轉的問題

使用presentModalViewController可以讓界面更有變化,但是當我們已經使用AddSubView將其他的View加進來後,就有可能遇到使用presentModalViewController時,有方向錯亂的情況,這時可以嘗試:

resultsVC.modalPresentationStyle = UIModalPresentationCurrentContext;

但當AView(被推進來的View)可以正常顯示後,若是旋轉螢幕卻會發現另一個問題:AView沒有跟著轉向,還是呈現橫着(若從橫轉直),導致將AView退出後影響原本BView(原本顯示的View)的大小。

這時可以利用autoresizingMask重新設定resize的模式

resultsVC.view.autoresizingMask = UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleWidth;

iOS學習_Login input using UIAlertView

登入頁面可以說是系統開發的常客,裡面的認證機制是一回事,但在行動化裝置開發時,就連界面的排版也變的需要特別考慮一下,原因是鍵盤現在不在桌上,而是螢幕上。

假設我們做了一個曠世巨作叫做『Fighting 阿蠻』,而且這是一個需要登入的遊戲,所以我們精心設計了超有氣勢的登入畫面,就像平常在寫Web的程式一樣:

但當按下輸入框時就會發現一個很大的問題:

因為虛擬鍵盤的關係,使用者看不見輸入的內容,這時候大致上有三個選擇:
1. 不管他,反正鍵盤收起來就可以看到了。
2. 把輸入框設計在鍵盤檔不到的地方。
3. 利用UIAlertView或UIPopover的特性,當鍵盤出現時會自動作位置上的調整。

那本篇就是要介紹怎麼用UIAlertView來完成這件事情。
-----------------------------------------

在5.0以前的時代,UIAlertView預設模式下並沒有辦法出現兩個輸入框,如果要做到就必須要自己客制化一個AlertView,但到了5.0以後,Apple幫我們加入了這個模式,所以要達成類似的要求變得非常簡單:

-(void)btn_login_click:(id)sender
{
UIAlertView *loginalertview = [[UIAlertView alloc] initWithTitle:@"系統登入"
message:nil
delegate:self
cancelButtonTitle:@"取消"
otherButtonTitles:@"登入", nil ];
loginalertview.alertViewStyle = UIAlertViewStyleLoginAndPasswordInput;
loginalertview.tag = 1;
[loginalertview show];
[loginalertview release];
}

與使用一般的UIAlertView一樣,只需要增加alertViewStyle的設定,就可以達到下面的效果。

但是輸入框內的提示卻是Login與Password,有時候我們可能希望提示的內容是自己想要的文字,就可以藉由willPresentAlertView在顯示前更改。

-(void)willPresentAlertView:(UIAlertView *)alertView
{
if(alertView.tag==1)
{
UITextField *accoutName=[alertView textFieldAtIndex:0];
UITextField *accoutPassword=[alertView textFieldAtIndex:1];
accoutName.placeholder= @"勇士名稱";
accoutPassword.placeholder= @"傳送金鑰";
}
}

效果:

最後,我們只需要去處理當按下『登入』按鈕後,取得使用者輸入的帳號跟密碼,再進行需要執行的動作。

-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
if(alertView.tag==1 && buttonIndex ==1)
{
UITextField *accoutName=[alertView textFieldAtIndex:0];
UITextField *accoutPassword=[alertView textFieldAtIndex:1];
NSLog(@"accoutName:%@",accoutName.text);
NSLog(@"accoutPassword:%@",accoutPassword.text);
[self CheckLoginUser:accoutName.text password:accoutPassword.text]
}
}

2012年4月10日 星期二

我的媽媽是鳳迷

前不久鳳飛飛過世的消息傳出,許多鳳迷都非常的難過,老媽雖然原本沒有非常迷戀,但聽了一些代表作後,勾起年輕的回憶,也成為了遲來的忠實支持者。

一切就從一張精選集開始「伴咱走過歷史的歌」,裡面除了四片cd外還附有照片集,「你看看,他就是這麼多變又認真」老媽一邊翻閱一邊讚嘆。

就在短短的一個星期,跑遍菜市場、唱片行、誠品及網路購物,已經收集不下20張的專輯與兩部電影。

家裡唯一可以撥放CD的機器只有兩個,一個是用來打電動的電腦,另一個就是電視機下的XBOX,只看到照片的人會誤以為在玩惡靈古堡嗎?

為了可以撥錄音帶、可以撥CD又可以撥MP3,與老哥遍尋Panasonic的RX-D55;老媽看到我搬這台回家的表情,我猜想就跟自己小時候看到玩具一樣興奮,「喔喔!這台好好喔!音質好棒喔!」接下來的日子裡家裡總是撥放著鳳飛飛各時期歌曲。

「電視上說網路有100多個鳳飛飛的部落格耶,你用給我看」,就這樣我的筆記型電腦成為另一個新寵兒,不論是看Blog或是YouTube,都在兩三天內就學會了。

現在甚至會自己開數據機、開機、搜尋wifi、開瀏覽器搜尋YouTube影片,其實也不過就是一星期來事情,果然有動力什麼都學的會。:)


掌聲響起來~~~我心更明白~~~你的愛將與我同在~~~

掌聲響起來~~~我心更明白~~~歌聲交會你我的愛~~~

感謝您。

2012年4月7日 星期六

民國101年除夕夜

雖然已經離過年有一段時間了,但還是覺得除夕夜還是應該稍微紀錄一下。

--------------------------------------------------------
大家都說現在年味很淡,每個人都趁過年的時候排旅遊出國,在台灣的人變少,吃年夜飯的人也變少了,但是我們家一如往常的還是過了一個很紮實的年。


以往年夜飯老媽總是希望可以豐豐盛盛,又豐盛又都自己煮就是造成最後一道完成,第一道可能已經需要回鍋一下,也不知道從哪一年開始,南門市場變成家裡年菜的要角,梢加組合與擺盤就變成一道道美味的佳餚。

(偷吃?)


不知道為什麼老媽今年特別high,根本沒在喝酒的我們家,也打開了老哥帶回來的清酒。


吃年夜飯的過程中,老爸總會提醒:不要吃太多喔。原因是其實吃完年夜飯真正的晚餐才要開始,家裡的習俗是在除夕晚上12點的時候要包水餃遙祭祖先,所以下午就必須要準備好水餃餡(我切的,ㄎ)

因為以前麵粉跟米比起來便宜很多,為了省錢每到假日我們家的晚餐絕大部分都是麵類製品,麵條、包子、韭菜盒或水餃等等,所以老爸、老媽跟老哥早就練就飛快的桿皮速度,至於我?就是負責在旁邊說:咦?今天吃白菜口味喔?今天吃南瓜口味喔?

今年特地下海搗亂,就在數個歪七扭八之後,我也記起小時後學過的王式一次按壓式包水餃大法!!

經過一片混亂以後,也終於包完所有的餡料,

所以下鍋囉!煮水餃的秘訣就是沒有秘訣:水煮開→下水餃→一邊等水煮開一邊輕撥水餃→等水餃浮起來→觀察是不是有點晶透。(現包的中間不用加冷水再滾一次喔)

就在吃完年夜飯,又吃水餃挺著大肚子的時候,通常老爸在這時候都會講些以前的事情,但是老人家也慢慢不能熬夜太晚,所以今年就來一張久違很久的全家福。