IOS中,CAAnimation 这个类的 @property(nullable, strong) id delegate; 这个delegate用 strong的原因是?
认证0级讲师
你是擔心 strong 的 delegate 會引起循環引用嗎?這裡的情況跟一般的 delegate 不太一樣,首先動畫是異步的,在動畫的過程中,它的 delegate 隨時都有可能被釋放掉,如果不是個強引用的話,比如用戶點了返回之類的。另外一方面,一般來說你不會持有一個 CAAnimation 的強引用(跟 UITableView 不一樣)。文檔裡也說這是記憶體管理規則中的例外。
你是擔心 strong 的 delegate 會引起循環引用嗎?這裡的情況跟一般的 delegate 不太一樣,首先動畫是異步的,在動畫的過程中,它的 delegate 隨時都有可能被釋放掉,如果不是個強引用的話,比如用戶點了返回之類的。另外一方面,一般來說你不會持有一個 CAAnimation 的強引用(跟 UITableView 不一樣)。文檔裡也說這是記憶體管理規則中的例外。