cht電腦資訊Language
adm Find login register

Apple's XCode/Objective C

eliu
1 Apple's XCode/Objective C
Promote 0 Bookmark 02012-02-09quote  

從 Programmer 的觀點來看,一直覺得很好奇,Apple 怎麼會成功?

  • iPad iPhone 的 AP 只能用 XCode 開發
  • XCode 只能在 MacOS 執行,所以還要買一台 iMac
  • XCode 老實說,太複雜,不好用
  • 還要花時間學習 Apple 獨門的 Objective C

這麼多不利的情形影響下,Apple's AppStore 怎麼會有那麼多 AP?

只能說 Apple Fans 多,信仰夠堅定,號召力強。LaughingMoney mouth

XCode 在設計 UI 方面有其獨到之處,可以處理 resize dialog 的情形,適合各種 size 的 device。

M$ Visual Studio 好像只能處理固定的 size 的 dialog,resize 時要自己 place components。

edited: 5
eliu
2
Promote 0 Bookmark 02012-02-13quote  

XCode 與 Visual Studio 相比,困難處在於有很多 UI 的動作從 sample code 看不出來是要怎麼變出來的,可設定的 menus/attributes 超多,所以要一直嘗試。Yell

企鵝狂
3
Promote 0 Bookmark 02012-02-13quote  

Cocoa不是只要實作delegate。

然後把某個事件拉一條線到delegate這樣就可以處理事件了嘛?

eliu
4
Promote 0 Bookmark 02012-02-13quote  

下午花了不少時間研究 TableView + NSArrayController & 相關設定,還好有弄出自己想要的結果。應該不是只有 ctrl + drag compoent 就可以的。

edited: 2
eliu
5 MacOS XCode App icon
Promote 0 Bookmark 02012-02-22quote  

光設定 App icon 就花了不少時間,有 youtube 說可以用 .png 來當 XCode 的 APP icon,那應該是只能用 iOS 上。

MacOS App icon 只能用 .icns,可以用 FastIcns 把 .png 轉成 .icns,轉出來的 .icns 還比原來的 .png大,不知道 Apple 在堅持什麼?

eliu
6
Promote 0 Bookmark 02012-02-22quote  

XCode 一個比較大的問題是 ctrl-drag 產生的 code 好像常在改,而且有些不相容,同樣是 version 4.*。

有時候會 freeze 不動,必須強制結束。

eliu
7
Promote 0 Bookmark 02012-02-23quote  

Objective C 送 message 給 nil (NULL) 是合法的不會 coredump,其實我反而希望傳統的 C/C++ function call 會 coredump,這樣可以及早發現問題。

不要發現不對時,還要去 dump value 找到底那邊出問題。

edited: 1
eliu
8
Promote 0 Bookmark 02012-04-08quote  

XCode 讓人覺得不方便的地方是 Window 太多,open 的 file 應該弄成 Tab 的方式。

XCode 容易 crash,不穩定,最近最慘的一次是 open 就 crash,只好把 project directory rename 才可以 open。顯然是有 temporary files 有問題,google 之後沒找到solution。

edited: 1
eliu
9 cocoa/objective C memory management
Promote 0 Bookmark 02012-05-24quote  

cocoa/objective C 一個讓人頭痛的是 memory management,是用 reference count 的方式

[id retain] 增加 reference count

[id release] 減少 reference count

如果 object 在 alloc 後從來沒有做 retain 的動作,在某個時間就會大清倉,被 [id dealloc],之後去 read 就會 coredump。

coredump 在很奇怪的地方,用 gdb bt 看不懂。最後必須用 log 去 trace 才知道原因,這樣就會浪費很多時間。

cht電腦資訊Language
adm Find login register
views:26068