gpt4 book ai didi

ios - iPhone SDK 发布 NSString

转载 作者:行者123 更新时间:2023-11-29 11:23:21 26 4
gpt4 key购买 nike

我是 Objective C 的新手,我有一个关于内存管理的简单问题。

这是 Button 的一个简单方法,它用 UITextField 中的文本更改 UILabel

-(IBAction) setLabel
{
NSString *inputText = [[NSString alloc]initWithString:myTextField.text];

[myLabel setText:inputText];
[inputText release];
}

这段代码工作正常。但是如果我将此代码更改为以下内容,

-(IBAction) setLabel
{
NSString *inputText = [[NSString alloc]initWithString:@"some string value"];
inputText = myTextField.text;
[myLabel setText:inputText];
[inputText release];
}

然后应用程序在运行时崩溃。我必须删除行 [inputText release]; 才能运行应用程序而不会崩溃。据我所知,如果我用“alloc”创建了一些东西,我必须释放它。但是在这里,如果我释放那个字符串应用程序崩溃。有人可以解释一下原因吗?

提前致谢

最佳答案

版本崩溃的原因是因为您将 inputText 重新分配给 myTextField.text。对 release 的调用现在正在释放该字符串,而不是在 setLabel 的第一行分配的字符串。如果您为该赋值使用另一个变量,它应该可以修复崩溃。

关于ios - iPhone SDK 发布 NSString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5485592/

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