一般来说,let应该浪费的内存(和其他资源)要少得多#define.因为想象你有
#define SOME_PATH [[[@"/" stringByAppendingPathComponent:@"foo"] stringByAppendingPathComponent:@"bar"] stringByAppendingPathComponent:@"buz"]
Run Code Online (Sandbox Code Playgroud)
在任何地方,你将使用SOME_PATH,它将重做计算并NSString *为此创建一个新的(加上一些临时的).
通过使用
let SOME_PATH = "foo".stringByAppendingPathComponent("bar").stringByAppendingPathComponent("buz")
Run Code Online (Sandbox Code Playgroud)
它将进行计算以完全构建一次字符串,它只需要一块内存(在构建字符串时,会创建一些快速丢弃的临时对象).
因此,您可以根据需要随意使用let常量.该d宏会产生费用每次使用它的时间.#define
请记住,您可以let在全球范围内使用.因此let,不仅可以在函数或类中工作,还可以使用定义全局常量let.
| 归档时间: |
|
| 查看次数: |
68 次 |
| 最近记录: |