gpt4 book ai didi

iphone - iPhone 上使用 obj-c 时,自动释放所有内容而不是释放有什么坏处吗?

转载 作者:行者123 更新时间:2023-12-03 20:24:17 25 4
gpt4 key购买 nike

对于 iPhone 上的 obj-c,自动释放所有内容而不是释放有什么坏处吗?

例如,这段代码:

NSString *recipe = [[NSString alloc] initWithUTF8String:sqlite3_column_text(dbps,0)];
[arr addObject:recipe];
[recipe release];

当我创建配方时,可以通过自动释放配方 nsstring 将其缩短为两行:

NSString *recipe = [[[NSString alloc] initWithUTF8String:sqlite3_column_text(dbps,0)] autorelease];
[arr addObject:recipe];

这有什么缺点吗?我发现它更适合我的编码风格。谢谢大家。

最佳答案

缺点是对象会稍后释放。在大多数情况下,这不会成为问题,但如果您在紧密循环中分配和自动释放数千个对象,这种开销可能会增加到影响性能的程度,甚至导致您的应用程序内存不足。

无论如何,您可能想要使用:

[NSString stringWithUTF8String:sqlite3_column_text(dbps,0)];

而不是

[[[NSString alloc] initWithUTF8String:sqlite3_column_text(dbps,0)] autorelease];

关于iphone - iPhone 上使用 obj-c 时,自动释放所有内容而不是释放有什么坏处吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3186500/

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