2010-08-23 58 views

回答

10

我喜歡Apple的"A Short Practical Guide to Blocks"作爲概念的介紹。

此外,針對問題"Suggested resources for learning about blocks in Snow Leopard"所指的幾乎所有資源都適用於此。

在那裏的資源之上,我推薦Drew McCormack的"Cocoa for Scientists (Part XXVII): Getting Closure with Objective-C""Cocoa for Scientists (XXXIII): 10 Uses for Blocks in C/Objective-C"以及Joachim Bengtsson的"Programming with C Blocks"

會議206的WWDC 2010 videos - 「在iPhone上推出Blocks and Grand Central Dispatch」和211 - 「使用Grand Central Dispatch簡化iPhone應用程序開發」也非常值得關注。

+0

我不是在snoe豹中尋找塊,而是爲了iPhone和iPad,並且就第一個鏈接而言,我對它在那裏的解釋方式並沒有太深刻的印象。可以給我一些塊的啓動代碼。那會是很棒的幫助.. – 2010-08-25 12:08:05

+0

@Ajay Pandey - Snow Leopard和iOS 4.0的功能區別沒有區別。語言語法相同,Grand Central Dispatch也是一樣的,所以這裏的所有鏈接都適用。詢問代碼塊的例子就像是要求例子代碼的方法或功能。這是一個核心語言功能,因此很難創建一個真正的基本示例。 – 2010-08-25 14:20:29

+0

@Ajay Pandey - 我在回答中增加了一些可能有用的資源。 – 2010-08-25 14:27:38

13

塊是封裝一段代碼並有效存儲以備後用的一種方式。一個塊通常用來代替回叫功能。 iPhone SDK中較新的API以這種方式使用塊。該API將採取一個「塊」代碼,它將在完成時運行。

這樣可以節省你不必創建你自己的線程和維護每個線程的狀態,管理鎖,

當與大中央調度(GCD)API塊可用於在隊列中運行安裝程序自動釋放池等。並且可以使代碼的整個部分以非常小的代價異步運行,但仍然保持多線程代碼所需的健壯性。

+0

我明白這對使用GCD很重要,但除此之外,我發現很難理解像回調這樣的術語以及諸如此類的許多事情。文檔使用了複雜的terminology,因此如果有人可以請告訴我真的用起源language.Please保持簡單和一些代碼可以解釋,這將是偉大的...謝謝 – 2010-08-25 12:12:31

+4

@Aay Pandey - 什麼特定的語言給你麻煩?回調是響應應用程序或系統內發生的事件而觸發的方法或函數。塊可以讓你定義響應某個事件發生的動作,而不是讓你編寫一個單獨的方法或函數,它們允許你在設置該事件的監聽器的地方編寫處理代碼。這可以節省大量的代碼,並使您的應用程序更加有組織。 – 2010-08-25 14:33:22

+0

這就是我的理解,但現在我得到了確認。謝謝。 – 2010-08-26 04:36:39

相關問題