gpt4 book ai didi

Objective-C 内存管理 : What is happening when setting a retain property?

转载 作者:行者123 更新时间:2023-11-28 18:26:42 26 4
gpt4 key购买 nike

我想了解以下代码行的内存管理含义:

// in tableView:cellForRowAtIndexPath
cell.accessoryView = [[UIImageView alloc] initWithImage:
[UIImage imageNamed:@"test.png"];

我正在调用 alloc 这通常意味着我在某处调用了 releaseUITableViewCellaccessoryView setter 属性是 retain 所以(我认为)单元格将“取得”UIImageView 的所有权关于内存管理,上述代码行到底发生了什么?

最佳答案

如果您不在某处释放 View ,那么它将被泄露。所以你可能想做

UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"test.png"];
cell.accessoryView = imageView;
[imageView release];

或者你也可以这样做

cell.accessoryView = [[[UIImageView alloc] initWithImage:
[UIImage imageNamed:@"test.png"] autorelease];

关于Objective-C 内存管理 : What is happening when setting a retain property?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7183599/

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