有時error往往會在最關鍵的時候冒出來
(譬如說:我想過Christmas,我想去跨年...但是有些bug還沒解)
尤其是一些系統上的問題或是鬼打牆的小細節
首先登場的是
"No provisioned iPhone OS device is connected"
明明就接好好的device,你跟我說沒有provision
要解決這奇怪的現象,
可以試試在Organizer把provisioning裡的files通通delete讓他重裝
接著登場的是
"The program being debugged is not being run"
很無厘頭的error,但是解法跟上面的症狀是一樣的
進入Organizer把provisioning profiles清一清
還不行的話,從apple developer重新下載吧
最後登場的是
"CFPropertyListCreateFromXMLData():
Old-style plist parser: missing semicolon in dictionary."
話說在我要提供多國語言需求下,建立了lproj的strings file
奇怪的是出了這個error還跟我說 Unexpected character at line 1
第一行很ok阿,哪有什麼問題!也有semicolon阿
然而在我浪費了約1個小時的青春尋找問題
最後....在文件的很後面 很後面 的某一行.....真的少了一個semicolon...@#$%
所以at line 1是騙人的,semicolon是一定有漏掉的地方
睜大眼睛快找找吧~
Happy New Year & Happy Debugging lol
2010年12月31日 星期五
2010年8月6日 星期五
iPhone 常見錯誤百科全書
有鑑於本人健忘的個性
以及撰寫程式時常犯的壞習慣
還是把一些常見的問題記錄下來
使用initWithNibName的物件一定是繼承UIViewController
-[xxxViewController initWithNibName:bundle:]: unrecognized selector sent to instance 0x5d12345
*** Terminating app due to uncaught exception 'NSInvalidArgumentException'
it caused by xxxViewController don't inherit from UIViewController
@interface xxxViewController :UIView UIViewController {
}
舊版xcode sdk3.1.2 專案在4.0底下執行步驟
1. 在載入專案後,會先看到base sdk missing
2. 在專案上面按右鍵-->Get Info
4. 然後要編譯之前下拉左上角選單並選擇Simulator
有一個很無言的蠢狀況,希望大家都不要遇到才好
情境:
ViewControllerA想要傳遞一個參數給ViewControllerB
並且程式將由ViewA-->ViewB
ViewControllerA中某個function
{
ViewControllerB * viewb = [[ViewControllerB alloc]
initWithNibName:@"viewcontrollerb"
bundle:[Bundle mainBundle]];
//notice: 下面的動作絕對會做白工,一定要確定controller已經移轉才會正確
//viewb.TestLabel.text = @"the text will be null";
//push the controller from A to B
[self.navigationController pushViewController:viewb animation:YES];
//notice: pass your data here
viewb.TestLabel.text = viewa.InputField.text;
}
有時間我就繼續update吧,不然每一篇的篇幅都太短
像灌水文章就不好了 :)
2010/09/30 UPDATES:
升級xcode sdk 到4.1 編譯時發現NSErrorFailingURLStringKey會出現Deprecated的警告
查詢一下官方文件: NSError Class
修改成NSURLErrorFailingURLStringErrorKey就好了
2011/04/14 UPDATES:
有了error message在遇到的時候秀在log裡面確實是不錯啦
只不過好像還少了點什麼...
到底這些error message代表意義是什麼,總不能期待每次遇到了才來處理吧
該去哪裡找這些information 好在處理error時不會有遺漏的呢?
追溯一下 NSURLError.h然後再找到CFNetworkErrors.h這個標頭檔
酷吧~通通都一清二楚囉:)
2011/10/24 UPDATES:
如果出現了modifying layer that is being finalized的錯誤問題
通常就是有重複release UI所導致的
檢查看看並且把[button removeFromSuperview] 置換 [button release]
舉凡UIView都是一樣的處理方式囉~
發現一個MutableArray無法add object,
那應該就要檢查看看是否忘記做初始化的動作.
[[NSMutableArray alloc] init];
初始後Array就不會是nil (0x0)自然就能add object了
以及撰寫程式時常犯的壞習慣
還是把一些常見的問題記錄下來
使用initWithNibName的物件一定是繼承UIViewController
-[xxxViewController initWithNibName:bundle:]: unrecognized selector sent to instance 0x5d12345
*** Terminating app due to uncaught exception 'NSInvalidArgumentException'
it caused by xxxViewController don't inherit from UIViewController
@interface xxxViewController :
}
舊版xcode sdk3.1.2 專案在4.0底下執行步驟
1. 在載入專案後,會先看到base sdk missing
2. 在專案上面按右鍵-->Get Info
3. 選擇Build標籤,找到Base SDK切換到 iPhone Device 4.0
(iPhone Device 3.2 會開啟iPad simulator)
有一個很無言的蠢狀況,希望大家都不要遇到才好
情境:
ViewControllerA想要傳遞一個參數給ViewControllerB
並且程式將由ViewA-->ViewB
ViewControllerA中某個function
{
ViewControllerB * viewb = [[ViewControllerB alloc]
initWithNibName:@"viewcontrollerb"
bundle:[Bundle mainBundle]];
//notice: 下面的動作絕對會做白工,一定要確定controller已經移轉才會正確
//viewb.TestLabel.text = @"the text will be null";
//push the controller from A to B
[self.navigationController pushViewController:viewb animation:YES];
//notice: pass your data here
viewb.TestLabel.text = viewa.InputField.text;
}
有時間我就繼續update吧,不然每一篇的篇幅都太短
像灌水文章就不好了 :)
2010/09/30 UPDATES:
升級xcode sdk 到4.1 編譯時發現NSErrorFailingURLStringKey會出現Deprecated的警告
查詢一下官方文件: NSError Class
修改成NSURLErrorFailingURLStringErrorKey就好了
2011/04/14 UPDATES:
有了error message在遇到的時候秀在log裡面確實是不錯啦
只不過好像還少了點什麼...
到底這些error message代表意義是什麼,總不能期待每次遇到了才來處理吧
該去哪裡找這些information 好在處理error時不會有遺漏的呢?
追溯一下 NSURLError.h然後再找到CFNetworkErrors.h這個標頭檔
酷吧~通通都一清二楚囉:)
2011/10/24 UPDATES:
如果出現了modifying layer that is being finalized的錯誤問題
通常就是有重複release UI所導致的
檢查看看並且把[button removeFromSuperview] 置換 [button release]
舉凡UIView都是一樣的處理方式囉~
發現一個MutableArray無法add object,
那應該就要檢查看看是否忘記做初始化的動作.
[[NSMutableArray alloc] init];
初始後Array就不會是nil (0x0)自然就能add object了
訂閱:
文章 (Atom)


