2010-08-23 46 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

相关问题