解决办法如下。此处还不能直接把__unsafe_unretained放在创建person对象的那一行。因为如果那样的话,这个person对象是一个弱指针指向的,一出生就死了。引入弱指针person0的目的就是block代码里的person0回指对象时,是弱引用,这样就不会出现2个强引用互相指着。也可以用__weak。
Person *person=[[Person alloc]init];
__unsafe_unretained Person *person0=person;
person.blockName=^{
person0.age=20;
};
具体在这个链接有block的相关用法