gpt4 book ai didi

objective-c - 没有 iVar 且具有显式 setter 和 getter 的 Objective-C 属性的内存管理

转载 作者:行者123 更新时间:2023-12-03 17:50:09 24 4
gpt4 key购买 nike

我是 Cocoa 开发的新手,想知道如何处理没有 iVar 且具有显式 setter 和 getter 的属性的内存。

这是这样的:

/////* - Interface- */
@interface MyCustomView: NSView {
MyCustomButton *_button;
}

@property (nonatomic, retain) MyCustomButton *button; // normal property
@property (nonatomic, copy) NSString *title; // This is the one I am talking about

@end

/////*-Implmentation-*/
@implementation MyCustomView

@synthesize button = _button;

- (void)setTitle:(NSString *)title {
[[self button] setTitle:title];
}

- (NSString *)title {
return [[self button] title];
}


- (void)dealloc {
[_button release];
[super dealloc]
}
@end

在这种情况下如何处理“标题”的内存?

最佳答案

How is memory for "title" handled in this case ?

没什么可处理的。您不会创建或讲述任何对象,因此无需担心。

如果您使用 ARC(您应该),则 -dealloc 方法中的显式 [_button release] 应该消失。

由于您在 title 属性中指定了 copy,因此您应该确保复制传入的对象。大多数时候这并不重要,因为您可能使用不可变的字符串,这些字符串永远不会真正被复制,但仍然......

`[[self button] setTitle:[title copy]];`

关于objective-c - 没有 iVar 且具有显式 setter 和 getter 的 Objective-C 属性的内存管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28994995/

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