我应该在一个块中使用哪个NSAssertion?

时间:2015-12-01 15:11:09

标签: ios objective-c

我们不能在块内部使用NSAssertion,因为该宏使用self,创建一个保留周期,如下所示: http://www.takingnotes.co/blog/2011/09/27/making-nsassert-play-nice-with-blocks/ 我的问题是,我应该在一个块内使用什么样的断言?

2 个答案:

答案 0 :(得分:7)

在这些情况下,我通常使用NSCAssert()。它没有通过self,也对C函数内部的断言很有用。

答案 1 :(得分:-1)

如果您在块中使用self时遇到保留周期问题,则可以在块外部@weakify(self)再次在@strongify(self)内部,这很好地解释{{3} }。