属性:

在继承关系下,子类使用父类的数据通过属性最为合适,也最直接明了。

Block:

如果有某种继承或所属关系时,父元素要使用子元素的数据,那么此时应该使用block回调。因为此时子元素属性就不一定能取到值(初始化未或动作未必完成)。

消息:

两个类根本没有关联,则可以采取发消息的方式。如果两个类可以引入某一方,则还是采取属性或者block方法,因为发消息实际上通过KVO比较消耗系统资源。能不发消息,尽量不要发消息。