解决方案 »

  1.   

    toAlbum、completionBlock也是方法名的一部分,你这个方法的完整名称是:
    saveImage:toAlbum:completionBlock:failureBlock
    下面是回调块,功能就是回调给外部调用这个方法的对象,让外部的对象知道内部处理的情况
      

  2.   

    函数名不是你说的saveImage。 在oc中正确的函数签名应该是: saveImage: toAlbum: completionBlock: failureBlock:
    这是oc函数定义的一个特点,虽然toAlbum completionBlock failureBlock 后面带的是这个函数的参数,但函数的签名是以:号分开的这样的 saveImage: toAlbum: completionBlock: failureBlock:completionBlock, 可以理解为回调函数。它被定义为block. 类似swift中的闭包。
      

  3.   

    当然有,这是关键所在。 它是将内部处理的结果返回到外部调用对象,以便外部对象来使用。是不是在28行到44行在执行时会出现错误,错误放在error里边?这段话的执行顺序是怎样的呢?谢谢
      

  4.   

    当然有,这是关键所在。 它是将内部处理的结果返回到外部调用对象,以便外部对象来使用。是不是在28行到44行在执行时会出现错误,错误放在error里边?这段话的执行顺序是怎样的呢?谢谢
    很明显在saveImage:XX 这个函数里面又调用了另外一个writeImageToSavedPhotoAlbum:XXX 的函数,将这个函数处理的结果,回调给saveImage:XX的回调。 
    其实block也很好理解,它的作用同oc的代理delegate. 可以这样理解,当这个函数处理完成后,我想通知另一个对象告诉它我处理完了,要将结果返回。其实它就像数据传递中的“发送者” 。而另外订阅这个的对象,我们称它为“接收者”
      

  5.   

    当然有,这是关键所在。 它是将内部处理的结果返回到外部调用对象,以便外部对象来使用。是不是在28行到44行在执行时会出现错误,错误放在error里边?这段话的执行顺序是怎样的呢?谢谢
    很明显在saveImage:XX 这个函数里面又调用了另外一个writeImageToSavedPhotoAlbum:XXX 的函数,将这个函数处理的结果,回调给saveImage:XX的回调。 
    其实block也很好理解,它的作用同oc的代理delegate. 可以这样理解,当这个函数处理完成后,我想通知另一个对象告诉它我处理完了,要将结果返回。其实它就像数据传递中的“发送者” 。而另外订阅这个的对象,我们称它为“接收者”
    谢谢你!还有个问题链接在这里http://bbs.csdn.net/topics/390942276能否帮我解答下