星期日, 五月 24, 2009

NSNumber 與 NSInteger

在 Mac OSX 10.5 中新增加了 NSInteger 這個東西,但是這下就會跟 NSNumber 搞混,到底要用哪個?

基本上,NSInteger(以及類似的 NSUInteger)是為了解決在 32-bit/64-bit CPU 架構下,int 長度不同的問題,它的定義如下:

#if __LP64__ || NS_BUILD_32_LIKE_64
typedef long NSInteger;
typedef unsigned long NSUInteger;
#else
typedef int NSInteger;
typedef unsigned int NSUInteger;
#endif
也就是說,NSInteger 只是用 typedef 包裝過的 int/long,它是個基本資料型別(data type)。

NSNumber 則是個不折不扣的 Objective-C 類別,因此這兩者的使用時機就很明顯了,當你要把 integer 放到 Obj-C 的集合,例如 NSArray/NSSet 時,請用 NSNumber,不然其他的時候用 NSInteger 就好了。

標籤: , , ,

星期四, 十二月 13, 2007

CocoaCast

有朋友在 PTT 的 MacDev 版詢問要怎麼在 Xcode 上寫 C++ 和 Java,其實問題內容是他不知道怎麼開始使用 Xcode。雖然我之前翻的 Become an Xcoder 有稍微介紹了 Xcode,但畢竟不是專門講這部份,說不定應該要來寫一篇簡單的教學?

不過後面 anpig 兄倒是推薦了一個不錯的 podcast 資源:CocoaCast,內容看起來相當豐富,有興趣的朋友歡迎訂閱。

標籤: ,

星期二, 十二月 11, 2007

在 Mac 上使用 VTK

VTK - Visualization Toolkit 是一套在醫學影像上不少人用的 Open Source 函式庫,因為課程需要所以前陣子找了要怎麼在 Mac 上使用的一些資料。

Installing VTK on Mac OS X - 教你怎麼在 Mac 上編譯並安裝 VTK。不過他是直接安裝,像我這種喜歡用套件管理系統的人,可能會比較喜歡用 Fink 來安裝。
幸運的是,Fink 中已經有了 VTK,只要啟用了 unstable 的套件之後就可以看到三個名為 vtk-py23/24/25 的套件,這三個套件都是 VTK,只是個別用來搭配 Python 2.3/2.4/2.5 罷了,選一個裝就可以了。不幸的是,VTK 本身有支援 Cocoa,但是預設是沒有開啟,而目前 Fink 套件樹中的也沒有打開這功能,而且他沒有包到目前最新的版本(5.0.3)。

所以我根據 Fink 中 VTK 的設定檔,把 Cocoa 支援打開,包了 VTK-5.0.3,設定檔可以由此下載。下載之後的檔案是個 zip 檔,其中包含了三個檔案,把它們放到 {fink_path}/fink/dists/local/main/finkinfo 中,然後把 VTK-5.0.3 的原始碼(下載)放到 {fink_path}/src 下,然後設定一下讓 Fink 去讀取本地的套件,應該就可以在套件樹中看到 vtk-py23/24/25 這三個套件,而且版本都是 5.0.3,最後下指令讓它編譯安裝(我是使用 Fink Commander 直接點選),等它編完安裝完就可以用了。

想要玩的朋友請接著看以下三篇文章,應該就可以順利使用 Cocoa 搭配 VTK 使用了。
Cocoa for Scientists (Part XIV): Beginning 3D Visualization - MacResearch
Cocoa for Scientists (Part XV): Continuing 3D Visualization - MacResearch
Cocoa for Scientists (Part XVI): Finalizing 3D Visualization - MacResearch

最後附上我寫的作業畫面:

標籤: , , ,