gpt4 book ai didi

iphone - @autoreleasepool 在循环中还是在@autoreleasepool 中循环?

转载 作者:太空狗 更新时间:2023-10-30 03:12:18 25 4
gpt4 key购买 nike

在循环操作中将大量autoreleased 对象放入autoreleasepool 是一个很好的做法。我发现有人将@autoreleasepool 放入循环中,但其他人将循环放入@autoreleasepool。

1:

while ([rs next]) {
@autoreleasepool {
NSDictionary *dict = [self dictFromXX];
//...
}
}

2:

@autoreleasepool {
while ([rs next]) {
NSDictionary *dict = [self dictFromXX];
//...
}
}

哪个更好?或者代码 1 和 2 之间有什么区别?

谢谢!

最佳答案

在您的第一个示例中,每次迭代都会耗尽池。如果迭代主体涉及大量自动释放的对象,这是有意义的。

第二个例子只会在循环后耗尽池一次。

因此,如果循环的内部结构导致内存膨胀,那么选择选项一。如果整个循环的内存膨胀是可以接受的,那么循环然后使用选项二。

关于iphone - @autoreleasepool 在循环中还是在@autoreleasepool 中循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10121345/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com