gpt4 book ai didi

objective-c - 内存管理与方法调用

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:48:20 24 4
gpt4 key购买 nike

我有一个关于 Objective-c 中的内存管理和方法调用的非常简单的问题。

假设我有:

- (void)someFunction
{
NSMutableArray *array = [NSMutableArray arrayWithObjects:@"Value 1", nil];
[self someOtherFunction:array];
}

- (void)someOtherFunction:(NSMutableArray *)array
{
// Should I retain array here?
[array addObject:@"Value 2"];
// And then release ?
}

这是一个简单的例子,但想象一下我们有大约 10 个方法调用具有相同的对象参数。什么是最佳解决方案?

最佳答案

如果你是安全带和大括号,或者正在用线程做很多奇怪的事情,那么你可能应该在每个方法调用中保留/释放。事实上,这正是 ARC 在幕后为您所做的。 (据我所知,它没有记录在案,并且可能会因版本而异。)

而且,当然,按照您的建议保留/释放不会造成任何损害。实际上,它不太可能增加太多开销。

话虽如此:大多数人添加保留/释放。如果您的代码全部在主线程上运行,那么在您执行方法时您的对象不太可能被释放。

关于objective-c - 内存管理与方法调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12704319/

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