gpt4 book ai didi

ios - 用于转发到 Objective-C 中的复制属性的正确属性语义

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:43:15 25 4
gpt4 key购买 nike

假设有一个 UIView,它在内部包含一个 UILabel

UIView的公共(public)接口(interface)在.h中如下:

@interface MyView : UIView

@property (nonatomic, copy) NSString *text;

@end

并且私下在它的 .m 中:

@interface MyView ()

@property (nonatomic, strong) UILabel coolLabel;

@end

.m 中实现:

@implementation

- (void)setText:(NSString *)text
{
self.coolLabel.text = text;
}

- (NSString *)text
{
return self.coolLabel.text;
}

@end

查看公共(public)接口(interface),我用 copy 声明了 @property (nonatomic, copy) NSString *text 因为文本是由 coolLabel 内部。但是,我不确定这是否正确。

声明是否应该是 @property (nonatomic, assign) NSString *textassign 而不是因为我的类没有专门执行内存管理?还是我当前的接口(interface)声明正确?

仅供引用,一切都假设ARC

最佳答案

您的 text 属性应该是 copy 因为它的值最终会被标签复制。

property 定义就像一个契约(Contract)。您是在告诉属性(property)的用户将如何处理该值(value)。由于标签复制了文本,因此您应该指明正在复制您的属性。

关于ios - 用于转发到 Objective-C 中的复制属性的正确属性语义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23374464/

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