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

时间:2011-06-13 01:14:58

标签: objective-c ios

如何判断闭包将保留哪种类型的对象?闭包将会/不会保留任何特定的规则或类型列表吗?

1 个答案:

答案 0 :(得分:1)

保留所有Objective-C对象。其他一切都只是被复制了。例如,这里有三个变量:

NSArray* array = [NSArray array];
int i = 0;
int* ptr = malloc(sizeof(int));

所有三个变量都可以从块内部读取。但是,只保留array,因为它是唯一可以调用retain方法的变量。

在执行块时,应特别注意确保位置ptr仍然存在,因为它是一个无法保留的指针。