gpt4 book ai didi

objective-c - 释放我已经完成的 NSString 会导致崩溃

转载 作者:行者123 更新时间:2023-12-03 17:32:26 27 4
gpt4 key购买 nike

请注意下面注释掉的 [printvolfirst release]; 行。如果我取消注释,程序就会崩溃。我不明白为什么。除了您在此处看到的代码行之外,printvolfirst 变量不会在其他任何地方使用。将其分配给 printvol 后,我就完成了。那么为什么不发布它呢?

vol = vol / 1000000;
NSNumberFormatter * format = [[NSNumberFormatter alloc] init] ;
[format setPositiveFormat:@"#.#"];
NSString * printvolfirst = [[NSString alloc]init];
printvolfirst = [format stringFromNumber:[NSNumber numberWithFloat:vol]];

NSString * printvol = [[NSString alloc] initWithFormat: @"%@M", printvolfirst];

self.Pop.vol.text = printvol;
[printvol release];
//[printvolfirst release];
[format release];

最佳答案

stringFromNumber: 自动释放返回的对象。如果再次释放它,它会在释放后释放。

事实上,您甚至不需要此代码:

NSString*printvolfirst=[[NSString alloc]init];
<小时/>

您可以在build设置中打开“运行静态分析器”以获取有关此类情况的警告。

关于objective-c - 释放我已经完成的 NSString 会导致崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6270731/

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