gpt4 book ai didi

ios - 以下程序中对象的引用计数是多少?

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:27:58 25 4
gpt4 key购买 nike

1) 禁用 ARC。

2) 我有以下代码:

- (IBAction)btnsecondClicked:(id)sender {

NSString *myname;
myname = retrieveName();
}


NSString * retrieveName()
{
NSString *tmpStr = [[NSString alloc] initWithString "StackOverFlow"];
return tmpStr;
}

我试过分析器,它说

"Object Leaked: allocated object is not referenced later in this execution path and has a retain count of +1"

指向调用 retrieName 的行的下一行。

我的问题:

对象的保留计数是多少?不应该是 2 吗?

因为:

  1. 第一个引用计数在retrieveName()

    2.第二个计数在 btnscondClicked() 中,myname 变量保存在哪里?

    即:myname = retrievedName() -> 不会增加引用计数吗?

最佳答案

在这一步中,您创建了字符串 NSString *tmpStr = [[NSString alloc] initWithString "StackOverFlow"];。所以你有 +1 引用计数,因为总是 alloc: 返回带有 +1 计数的对象。那你会在哪里发布这个?这就是为什么它显示为泄漏。

关于ios - 以下程序中对象的引用计数是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24838196/

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