gpt4 book ai didi

objective-c - 声明的属性是否需要相应的实例变量?

转载 作者:IT老高 更新时间:2023-10-28 12:21:49 26 4
gpt4 key购买 nike

Objective-C 2.0 中的属性是否需要声明相应的实例变量?例如,我习惯做这样的事情:

MyObject.h

@interface MyObject : NSObject {
NSString *name;
}
@property (nonatomic, retain) NSString *name;
@end

MyObject.m

@implementation
@synthesize name;
@end

但是,如果我这样做会怎样:

MyObject.h

@interface MyObject : NSObject {
}
@property (nonatomic, retain) NSString *name;
@end

这仍然有效吗?它和我之前的例子有什么不同吗?

最佳答案

如果您使用的是 Modern Objective-C Runtime(iOS 3.x 或更高版本,或者 64 位 Snow Leopard 或更高版本),那么您确实不需要为您的属性定义 ivars在这种情况下。

当您@synthesize 属性时,ivar 实际上也会为您合成。这绕过了“脆弱的ivar”场景。您可以在 Cocoa with Love 上阅读更多相关信息

关于objective-c - 声明的属性是否需要相应的实例变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3074248/

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