通常整个 UIKit/Foundation 框架中的所有委托(delegate)都很弱,除了 UIWebView。

UIWebView's delegate

@property(nonatomic, assign) id< UIWebViewDelegate > delegate;

我很感兴趣,因为当您在关闭 UIWebView 的 ViewController 时忘记取消委托(delegate)时,这已多次导致我的应用程序崩溃。通常你不会期望这样的事情,所以可能有特定的原因为什么默认情况下它没有设置为弱。

最佳答案

假设如果 UIWebViewDelegate 定义为 WEAK 那么在 ARC 中它会自动 nil 委托(delegate)的引用。所以 UIWebViewDelegate 标记为 ASSIGN 因为如果类不是用 ARC 编译的,那么我们必须注意将其设置为 nil。

关于ios - 为什么 UIWebViewDelegate 分配而不是弱?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36342075/

10-12 02:45