1.如果對象有超過一個以上不同的事件源卵沉,使用delegation
注解:用block解決多個事件源有兩種方法 1. 為每個事件源寫相應的block喜命,這顯然是不合理的 2.寫一個可以接受任何事件的block深滚,這種寫法不簡單且不宜讀茶宵;
2.一個對象只有一個delegate,所以單例對象不要使用delegate系宫。
注解:可以想象CLLocationManager是個單例對象笛厦,當?shù)乩砦恢米兓臅r候纳鼎,需要不停的切換delegate指針到所需要數(shù)據(jù)的這個單例對象上去,顯然是不合理的
3.delegate面向的是過程裳凸,block面向的是結果
注解:在delegate的數(shù)據(jù)源和代理方法中我們總是能看到贱鄙,一系列的過程方法比如,我將要做什么(如:willSendRequest姨谷,將要發(fā)送請求)逗宁、到目前為止我知道的信息(如:canAuthenticateAgainstProtectionSpace)、我已經完成這些啦(didReceiveResponse梦湘,收到請求的回復瞎颗,即完成請求)而block只是一個請求結果件甥,并知道請求是否成功,面向結果的一個過程