gpt4 book ai didi

ios - 为从字符串文字分配的 NSStrings 获取相同的内存地址

转载 作者:可可西里 更新时间:2023-11-01 05:05:58 34 4
gpt4 key购买 nike

我为下面的代码片段获得相同的内存地址

NSString *str = @"2";

NSArray *arr = [NSArray arrayWithObjects:@"1", str, @"3", @"4", @"5", @"6", nil];

NSString *strTest = @"6";
strTest = @"2";
NSLog(@"object %x", [arr objectAtIndex:1]);

对象“str”、“strTest”和“log print”给出了相同的地址,尽管我已经为 NSString 声明了不同的实例,但它是如何发生的。请有人告诉我。这对我来说越来越奇怪了。

最佳答案

strNSLog 应该提供相同的内存地址,因为它们是相同的对象并且没有进行新的分配。 strTest 变量的两行可能被编译器优化为单个 NSString *strTest = @"2",并且由于 NSString是不可变的,保存内存空间并将其指向分配在可执行文件数据段中的相同 @"2" 字符串没有问题。

关于ios - 为从字符串文字分配的 NSStrings 获取相同的内存地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17364452/

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