因為給NSTimer傳weakSelf,內部是類似于@property (strong, nonatomic) id target;而不是block。
網上的說法是:而NSTimer引用的是weakSelf指向的值,我覺得不是很恰當。
個人理解是:
block底層會轉化成Person *__weak weakPerson;會把弱指針拷貝過去并弱引用,內部的引用修飾符是根據外部__weak修飾符而改變的。
而NSTimer是 @property (strong, nonatomic) ,外邊的修飾符對它沒有任何效果,仍然是強持有傳進去weakPerson指針。