【发布时间】:2019-11-29 07:16:42
【问题描述】:
如何在 Xcode 中禁用此警告?我理解警告信息,我只想取消它。
Block 隐式保留'self';明确提及“自我”以表示 这是预期的行为
【问题讨论】:
-
不要试图抑制它,而是按照警告状态修复代码。
标签: objective-c xcode
如何在 Xcode 中禁用此警告?我理解警告信息,我只想取消它。
Block 隐式保留'self';明确提及“自我”以表示 这是预期的行为
【问题讨论】:
标签: objective-c xcode
警告是故意的。只是禁用它可能会导致内存泄漏。你可以使用这样的东西:
__weak __typeof(self) weakSelf = self;
dispatch_async(self.queue, ^{
__typeof(self) strongSelf = weakSelf;
...
[strongSelf someMethod];
});
【讨论】:
可以禁止类中的某些代码。
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wimplicit-retain-self"
.. code ..
#pragma clang diagnostic pop
【讨论】:
将-Wno-implicit-retain-self 添加到构建设置中的相应条目中。完整列表见Diagnostic flags in Clang
【讨论】: