gpt4 book ai didi

objective-c - 将 NSString 放入方法中的 NSMutableArray 中的正确方法

转载 作者:搜寻专家 更新时间:2023-10-30 20:07:18 25 4
gpt4 key购买 nike

考虑以下代码

- (void) method1
{

list = [[NSMutableArray alloc] init];

NSString *f =[[NSString alloc] initWithCString: "f"];

[list addObject: f];
}

- (void) method2...

list 是一个类的实例变量,当我在method1 中分配一个NSString 时,我需要在另一个方法如method2 中访问列表中的所有变量,我需要保留它吗?我发现不需要保留?为什么?

最佳答案

当您分配某物时,您已经是所有者,因此无需保留它。

here完整的故事。

您的方法(和类)在内存管理方面实际上写得不好。你应该:

  1. 在分配新列表之前释放列表

  2. dealloc方法中释放list

  3. 添加到数组后释放字符串

因此将您的方法更改为:

- (void) method1 {  
[list release];
list = [[NSMutableArray alloc] init];
NSString *f = [[NSString alloc] initWithCString: "f"];
[list addObject: f];
[f release];
}

- (void) dealloc {
[list release];
// release other instance variables...
[super dealloc];
}

关于objective-c - 将 NSString 放入方法中的 NSMutableArray 中的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5183168/

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