我们不能在块内部使用NSAssertion,因为该宏使用self,创建一个保留周期,如下所示: http://www.takingnotes.co/blog/2011/09/27/making-nsassert-play-nice-with-blocks/ 我的问题是,我应该在一个块内使用什么样的断言?
答案 0 :(得分:7)
在这些情况下,我通常使用NSCAssert()
。它没有通过self
,也对C函数内部的断言很有用。
答案 1 :(得分:-1)
如果您在块中使用self
时遇到保留周期问题,则可以在块外部@weakify(self)
再次在@strongify(self)
内部,这很好地解释{{3} }。