gpt4 book ai didi

ios - 让和内存分配

转载 作者:行者123 更新时间:2023-11-28 09:46:24 25 4
gpt4 key购买 nike

我正在搜索 Swift 中的 Objective-C define 等效项,很多人告诉我使用 let

我在一个类中需要很多常量,我需要从这个类中创建很多对象,所以我认为使用 let 而不是 define< 会浪费太多内存

我错了吗?也许 let 以不同的方式工作。有没有办法在不浪费内存的情况下实现这一目标?

最佳答案

通常,let#define 浪费更少 内存(和其他资源)。因为想象你有

#define SOME_PATH [[[@"/" stringByAppendingPathComponent:@"foo"] stringByAppendingPathComponent:@"bar"] stringByAppendingPathComponent:@"buz"]

任何地方,你都会用到SOME_PATH,它会重做计算并为此创建一个新的NSString *(加上一些临时的) ).

通过使用

let SOME_PATH = "foo".stringByAppendingPathComponent("bar").stringByAppendingPathComponent("buz")

它会进行计算以一次构建字符串并且它只需要一 block 内存(在构建字符串的同时会创建一些临时对象很快就被丢弃了)。

因此,您可以根据需要随时免费使用let常量。 #defined 宏在您每次使用时都会产生成本。

请记住,您可以在全局范围内使用 let。所以 let 不仅可以在函数或类中工作,您还可以使用 let 定义一个全局常量。

关于ios - 让和内存分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30149777/

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