gpt4 book ai didi

objective-c - 为什么在 Objective-C 中一个人会自动释放自己的属性(property)?

转载 作者:行者123 更新时间:2023-11-29 04:23:57 29 4
gpt4 key购买 nike

这是一个代码示例来说明我的意思:

- (void) setup {
[self setupObjectModel];
[self setupStoreCoordinator];
}

- (void) setupObjectModel {
NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"Model" withExtension:@"momd"];
self.managedObjectModel = [[[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL] autorelease];
}

最佳答案

万一managedObjectModelstrong属性或用属性 retain 定义,setter 将自动保留传递的参数,因此 autorelease这样做可以防止内存泄漏(如果不这样做,NSManagedObjectModel 的保留计数将为 2,尽管只有 managedObjectModel 指向它。)

这相当于

_managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];

假设 setter 具有默认行为

关于objective-c - 为什么在 Objective-C 中一个人会自动释放自己的属性(property)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12628765/

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