块将在闭包中保留什么类型的对象?

问题描述

| 我如何说闭包将保留哪种类型的对象?是否有/将不会保留任何特定的规则或类型列表?     

解决方法

        保留所有Objective-C对象。其他所有内容都将被简单复制。例如,这是三个变量:
NSArray* array = [NSArray array];
int i = 0;
int* ptr = malloc(sizeof(int));
可以从一个块内部读取所有三个变量。但是,将仅保留
array
,因为它是可以调用
retain
方法的唯一变量。 由于块是无法保留的指针,因此应格外小心,以确保执行块时
ptr
指向的位置仍然存在。     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...