如何解决块将在闭包中保留什么类型的对象?
| 我如何说闭包将保留哪种类型的对象?是否有/将不会保留任何特定的规则或类型列表?解决方法
保留所有Objective-C对象。其他所有内容都将被简单复制。例如,这是三个变量:
NSArray* array = [NSArray array];
int i = 0;
int* ptr = malloc(sizeof(int));
可以从一个块内部读取所有三个变量。但是,将仅保留array
,因为它是可以调用retain
方法的唯一变量。
由于块是无法保留的指针,因此应格外小心,以确保执行块时ptr
指向的位置仍然存在。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。