delegate和block是iOS上常用于实现回调的两种机制,两者的选用可以参考下面的指导思想:
->公共接口、回调方法较多的,适合用delegate
iOS自身有很多例子,比如常用UITableViewDelegate、UITextViewDelegate等
->异步和简单的单个回调用block更方便
有很多第三方包/库这样用,比如ASIHTTPRequest,AFURLSessionManager等
delegate与block的使用对比,可以参见demo
http://download.csdn.net/detail/yzx0xyz/9080633
推荐一个用block给UIAlertView做回调的有趣用法
http://www.abdus.me/ios-programming-tips/uialertview-with-blocks-call-back/