2014年2月24日 星期一
2014年2月16日 星期日
2014年1月23日 星期四
2008年7月2日 星期三
回溯相容真是個地獄...T.T
這是一篇抱怨文。
Obj-C 2.0的語法相當的方便,當開發目標放在10.5以後的系統時,property,fast enumration等新增語法,
確實可以加快開發的速度。再加上Cocoa binding等技術,在10.5上開發真的是相當輕鬆-如果只打算在10.5上跑的話。
然而很不巧的,目前大部分的需求,還是離不開10.4的環境,當要把在10.5開發的程式,轉到10.4的時候...
對於開發者來說,這可真是一個問候賈布斯全家大小的好時機...
首先是所有coredata中,使用property的部分,全部要換成key-value coding的方式去呼叫,光這點就足以讓你問候一下賈布斯高堂近況...
其次,data modal中如果有用到self inverse relationship時,你可能會想順便問一下賈布斯的祖母過得好不好...
再來,如果在NSTable中透過NSTableDatasource實作Drag and Drop,但卻是用binding取得table的資料的話...嗯...我想應該會有人想去研究一下賈布斯的祖譜吧...
Obj-C 2.0的語法相當的方便,當開發目標放在10.5以後的系統時,property,fast enumration等新增語法,
確實可以加快開發的速度。再加上Cocoa binding等技術,在10.5上開發真的是相當輕鬆-如果只打算在10.5上跑的話。
然而很不巧的,目前大部分的需求,還是離不開10.4的環境,當要把在10.5開發的程式,轉到10.4的時候...
對於開發者來說,這可真是一個問候賈布斯全家大小的好時機...
首先是所有coredata中,使用property的部分,全部要換成key-value coding的方式去呼叫,光這點就足以讓你問候一下賈布斯高堂近況...
其次,data modal中如果有用到self inverse relationship時,你可能會想順便問一下賈布斯的祖母過得好不好...
再來,如果在NSTable中透過NSTableDatasource實作Drag and Drop,但卻是用binding取得table的資料的話...嗯...我想應該會有人想去研究一下賈布斯的祖譜吧...
Labels:
程式設計心得,
雜七雜八--Others,
Mac開發技術
2008年6月19日 星期四
應用NSTabView切換視窗內容
在設計軟體時,有時候會需要在兩個不同的View之間做切換。
舉例來說,當我們在iTunes中,點擊左方資料庫的「音樂」,「影片」或「電視節目」,在右方的Detail View中,預設會以列表的方式呈現。
但當我們點擊到「Apple Store」時,則右方的Detail View會以類似網頁的方式,呈現目前Apple Store的內容。
在過去,剛開始學習Cocoa的時候,因為不清楚可用的元件,對於這類的需求,在實作上,往往會以一個Custom View做為Wrapper,用置換其Content View的方式,來達成切換內容的需求。
不過事實上,Cocoa已經提供了好用的元件--NSTabView,能夠更快速的完成類似的UI。
一般我們在使用NSTabView的時候,都是在需要明確的Tab元件 ,也就是需要有一個地方能夠秀出
1. 目前的View的目的,或是名稱。
2. 其他可選用的View。
不過上面我所舉的例子,則比較類似UI狀態的切換,通常不會秀出這些資訊--在這種情形下,一般我們不太會去考慮用到NSTabView。
但是,Cocoa的NSTabView,提供了另一種型態的使用法--Tabless TabView。利用NSTabView的Tabless type,就可以不用秀出Tab,看起來就如同用Custom View去實作View的切換一樣。
而使用Tabless type的View,還有一個好處,就是可以自行去更換Tab的樣式,而不需撰寫NSTabView的子類別。
Xcode的UI中,Project/Debug View的切換,就是一個實際應用的例子。
舉例來說,當我們在iTunes中,點擊左方資料庫的「音樂」,「影片」或「電視節目」,在右方的Detail View中,預設會以列表的方式呈現。
但當我們點擊到「Apple Store」時,則右方的Detail View會以類似網頁的方式,呈現目前Apple Store的內容。
在過去,剛開始學習Cocoa的時候,因為不清楚可用的元件,對於這類的需求,在實作上,往往會以一個Custom View做為Wrapper,用置換其Content View的方式,來達成切換內容的需求。
不過事實上,Cocoa已經提供了好用的元件--NSTabView,能夠更快速的完成類似的UI。
一般我們在使用NSTabView的時候,都是在需要明確的Tab元件 ,也就是需要有一個地方能夠秀出
1. 目前的View的目的,或是名稱。
2. 其他可選用的View。
不過上面我所舉的例子,則比較類似UI狀態的切換,通常不會秀出這些資訊--在這種情形下,一般我們不太會去考慮用到NSTabView。
但是,Cocoa的NSTabView,提供了另一種型態的使用法--Tabless TabView。利用NSTabView的Tabless type,就可以不用秀出Tab,看起來就如同用Custom View去實作View的切換一樣。
而使用Tabless type的View,還有一個好處,就是可以自行去更換Tab的樣式,而不需撰寫NSTabView的子類別。
Xcode的UI中,Project/Debug View的切換,就是一個實際應用的例子。
2008年5月21日 星期三
使用CoreData的小技巧
上個月在參加過CocoaHeades後,自己也試著使用CoreData。
雖然在現場藍兄講得清楚明白又容易,自個兒嘗試使用卻不是那麼回事。
果然是看人挑擔不吃力,自個兒挑擔壓斷肩...
在使用CoreData時,個人覺得比較麻煩的是,CoreData的說明文件似乎已預設開發者都對資料庫的設計有一定的基礎,所以並沒有提到一些基本的資料庫程式的原則-像是怎麼規劃,如何做正規化,Data Model的圖怎麼對應到實際的資料庫與呈現的介面之上? 除此之外,其他的地方照著文件一步步進行,也還算是輕鬆如意。
雖然在現場藍兄講得清楚明白又容易,自個兒嘗試使用卻不是那麼回事。
果然是看人挑擔不吃力,自個兒挑擔壓斷肩...
在使用CoreData時,個人覺得比較麻煩的是,CoreData的說明文件似乎已預設開發者都對資料庫的設計有一定的基礎,所以並沒有提到一些基本的資料庫程式的原則-像是怎麼規劃,如何做正規化,Data Model的圖怎麼對應到實際的資料庫與呈現的介面之上? 除此之外,其他的地方照著文件一步步進行,也還算是輕鬆如意。
2008年4月21日 星期一
iPhone程式開發入門
初稿...
iPhone程式開發入門
重新檢視一下,其實寫得蠻瑣碎的....
===================================
經人提醒,可能違反NDA,先暫時鎖上。
另將Objective-C基本語法部分抽出如下:
Objective-C基本語法
iPhone程式開發入門
重新檢視一下,其實寫得蠻瑣碎的....
===================================
經人提醒,可能違反NDA,先暫時鎖上。
另將Objective-C基本語法部分抽出如下:
Objective-C基本語法
2008年3月11日 星期二
寫給初學者的簡易程式設計概念
這篇文章,是為了讓初學者能大略了解傳統的(循序的)程式設計而寫的。
原本是要做為CocoaHeads的講稿的前言,但實在難以在有限的時間之內講述明白,因此寫成文章,在此先行釋出。
寫給初學者的簡易程式設計概念
原本是要做為CocoaHeads的講稿的前言,但實在難以在有限的時間之內講述明白,因此寫成文章,在此先行釋出。
寫給初學者的簡易程式設計概念
2007年11月28日 星期三
Unit Test on Leopard
日前購入新款MacBook,首要之事,便是將過往專案及測試程式移至新環境。
相對於過去每次昇級Xcode,均需將專案檔版本一同昇級,此次從Xcode 2.0轉換為Xcode 3.0, 倒是完全無須更動專案檔。也許可以視為Xcode發展已趨穩定的一個表徵。
不過,在轉換環境的過程中,依然有些許不順之處。其中之一,便是 Unit Test Target 的環境改變。
在Mac OS X Tiger 及 Xcode 2.x 的環境下, Unit Test 相關 Frameworks 向來是置於Developer/SDKs/MacOSX10.x.sdk/Library/frameworks/ 或 System/Library/Frameworks/ 之下.
然而,在Leopard及Xcode 3.0的環境中,為了達成各項開發工具的可攜性,將部分frameworks放置的位置改變了。
詳細的改變如以下聯結所述:Xcode frameworks
此一改變,並未列於Xcode 3.0的release note之中,因此讓我花了相當多的時間在找尋其位置。
甚至一度想要自行下載原始碼編譯。這應該算是Apple在編寫文件上一個疏漏之處。
相對於過去每次昇級Xcode,均需將專案檔版本一同昇級,此次從Xcode 2.0轉換為Xcode 3.0, 倒是完全無須更動專案檔。也許可以視為Xcode發展已趨穩定的一個表徵。
不過,在轉換環境的過程中,依然有些許不順之處。其中之一,便是 Unit Test Target 的環境改變。
在Mac OS X Tiger 及 Xcode 2.x 的環境下, Unit Test 相關 Frameworks 向來是置於Developer/SDKs/MacOSX10.x.sdk/Library/frameworks/ 或 System/Library/Frameworks/ 之下.
然而,在Leopard及Xcode 3.0的環境中,為了達成各項開發工具的可攜性,將部分frameworks放置的位置改變了。
詳細的改變如以下聯結所述:Xcode frameworks
此一改變,並未列於Xcode 3.0的release note之中,因此讓我花了相當多的時間在找尋其位置。
甚至一度想要自行下載原始碼編譯。這應該算是Apple在編寫文件上一個疏漏之處。
Labels:
Mac開發技術
2007年6月18日 星期一
鍵-值編碼(key-value coding)技術概觀--0.5版
鍵-值相關技術--包含鍵值編碼(key-value coding),鍵-值監看(key-value observing)--可說是目前Mac應用程式開發基礎模式。包括繫結技術(binding),腳本語言支援(scriptable),以及各類UI與應用程式的合作,都是透過鍵值編碼加以實現。
以下文章,參考並改寫自Key-Value Coding Programming Guide以及NSKeyValueCoding Protocol Reference,雖然尚未完全完成,但希望能對有志開發者有所助益。
鍵-值編碼(key-value coding)技術概觀
以下文章,參考並改寫自Key-Value Coding Programming Guide以及NSKeyValueCoding Protocol Reference,雖然尚未完全完成,但希望能對有志開發者有所助益。
鍵-值編碼(key-value coding)技術概觀
Labels:
Mac開發技術
2007年5月26日 星期六
如何使用NSXMLFamily與XPath
在別的地方發佈了,卻忘了掛到自己的Blog上....XD
其實有空的話,我應該另外弄一個專門放技術文章的....
有空的話..............-_-|||
如何使用NSXMLFamily與XPath
其實有空的話,我應該另外弄一個專門放技術文章的....
有空的話..............-_-|||
如何使用NSXMLFamily與XPath
Labels:
尋孔顏樂處--Learning,
Mac開發技術
訂閱:
文章 (Atom)