【发布时间】:2014-01-13 19:22:04
【问题描述】:
考虑在手动保留释放中实现的情况,其中我有一个指向方法返回的对象的变量。
{
...
NSString *str = [self myNewString];
...
}
- (NSString *)myNewString
{
NSString *myString = [NSString stringWithFormat:@"%d-String", 1];
return myString;
}
这里我们是否必须保留myNewString返回的对象,以便在我们使用它时它不会被释放?
请帮助我是 Objective-C 的新手。提前致谢。
【问题讨论】:
-
如果您只是在学习 Objective-C,请改为学习 ARC。手动引用计数只是您可能出错的另一件事,它绝对不会给您带来任何好处。
-
是的,谢谢你的建议。但我热衷于了解幕后实际发生的事情。于是我开始学习手动引用计数。
-
您希望深入了解 Objectivr-C,这是令人钦佩的,但我会再次敦促您学习现代 Objective-C/ARC。它强调对象之间的关系,而不是机械和自动化的引用计数。
-
我刚开始时也想学习手动引用计数,直到我编写了我的第一个 ARC 程序,我意识到我浪费了所有花在学习引用计数上的时间。我能做的就是劝你不要犯同样的错误。
-
@godel9:了解 MRC 非常有用。在 ARC 中,编译器只是自动执行 MRC 内存管理规则。这意味着它与 MRC 中遇到的问题相同,例如保留周期。
标签: objective-c automatic-ref-counting release retain