为什么block要使用copy而不是strong或者其他属性修饰?

开发者 2024-10-5 00:38:21 39 0 来自 中国
block本身是像对象一样可以retain,和release。但是,block在创建的时间,它的内存是分配在栈上的,而不是在堆上。
其本身的作用域是属于创建时间的作用域,一旦在创建时间的作用域表面调用block将导致步伐瓦解。由于栈区的特点就是创建的对象随时可能被烧毁,一旦被烧毁后续再次调用空对象就可能会造成步伐瓦解,在对block进行copy后,block存放在堆区。使用retain也可以,但是block的retain举动默认是用copy的举动实现的,由于block变量默认是声明为栈变量的,为了可以大概在block的声明域外使用,以是要把block拷贝(copy)到堆,以是说为了block属性声明和现实的利用划一,最好声明为copy。
您需要登录后才可以回帖 登录 | 立即注册

Powered by CangBaoKu v1.0 小黑屋藏宝库It社区( 冀ICP备14008649号 )

GMT+8, 2024-11-21 21:11, Processed in 0.171121 second(s), 32 queries.© 2003-2025 cbk Team.

快速回复 返回顶部 返回列表