我很好奇如果我有这样的代码会发生什么。
NSArray* myArray = [NSArray alloc]initWithObjects:@"a", @"b", @"c", nil];
[myArray autorelease];
myArray = [otherArray copy];
autorelease
将标记要在当前事件循环结束时释放的内存。
这是否意味着[otherArray copy]
在事件循环结束时被释放?
答案 0 :(得分:2)
没有。自动释放对象时,对象将添加到自动释放池中,而不是指向这些对象的指针。您自动释放数组,如果将另一个数组复制到该指针中,它将不会受到影响。你应该使用ARC,而不是使用自动/释放。