gpt4 book ai didi

objective-c - Objective-C 中分配属性的方法之间的区别

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

以下是在 Objective-C 中分配属性的两种方法:

方法一

// in header
@interface Book : NSObject {
NSString *_title;
}

@property (nonatomic, retain) NSString *title;

// in implementation
@implementation Book
@synthesize title = _title;

方法二

// in header
@interface Book : NSObject {
NSString *title;
}

@property (nonatomic, retain) NSString *title;

// in implementation
@implementation Book
@synthesize title;

有什么区别?我最近在用方法一,越来越多的教程推荐方法一,但没人解释为什么。

最佳答案

区别在于名称。在 #2 中,属性和实例字段具有相同的名称。在 #1 中,它们有不同的名称。

#1 的优点是,当您指的是实例字段时,很难意外引用该属性,反之亦然。引用错误的对象会导致对象保留两次或根本不保留。

#2 的优点是它稍微简单一些,如果您在使用事物时小心且有点正式,它会很好地工作。

[而且,我明白了,一种风格指定assign,另一种指定retain,这是一个完全不同的讲座。您通常不会将 assign 与对象指针一起使用。]

关于objective-c - Objective-C 中分配属性的方法之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8675815/

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