__weak typeof(self)weakSelf=self; dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ __strong typeof(weakSelf)strongSelf=weakSelf; [strongSelf doSomething]; });
weakSelf是爲了block不持有self,避免循環引用,而再聲明一個strongSelf是由於一旦進入block執行,就不容許self在這個執行過程當中釋放。block執行完後這個strongSelf會自動釋放,沒有循環引用問題。html