因为给NSTimer传weakSelf,内部是类似于@property (strong, nonatomic) id target;而不是block。
网上的说法是:而NSTimer引用的是weakSelf指向的值,我觉得不是很恰当。
个人理解是:
block底层会转化成Person *__weak weakPerson;会把弱指针拷贝过去并弱引用,内部的引用修饰符是根据外部__weak修饰符而改变的。
而NSTimer是 @property (strong, nonatomic) ,外边的修饰符对它没有任何效果,仍然是强持有传进去weakPerson指针。