但是,如果在使用它们之前声明块,则可以递归使用它们。在非垃圾收集环境中,您可以执行以下 *** 作:
__weak __block int (^block_self)(int);int (^fibonacci)(int) = [^(int n) { if (n < 2) { return 1; } return block_self(n - 1) + block_self(n - 2);} copy];block_self = fibonacci;
有必要将__block修饰符应用于block_self,否则,在分配之前,fibonacci中的block_self引用将引用它(在第一次递归调用时崩溃您的程序)。 __weak是确保块不捕获对自身的强引用,这将导致内存泄漏。
总结以上是内存溢出为你收集整理的objective-c – 块有SELF指针吗?全部内容,希望文章能够帮你解决objective-c – 块有SELF指针吗?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)