gpt4 book ai didi

iphone - Objective-C 2.0中带下划线的实例变量和@synthetize重命名导致Xcode 4的 'Analyze'工具优化警告

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

<分区>

Possible Duplicate:
How does an underscore in front of a variable in a cocoa objective-c class work?

我对实例变量和属性命名使用相同的约定,如 sebnow 在他的以下回答中所示:

instance variable/ method argument naming in Objective C

我在这里复制粘贴他的示例代码:

@interface Foo : NSObject {
id _bar;
}
@property (nonatomic, retain) id bar;

- (id) initWithBar:(id)aBar;

@end

@implementation Foo
@synthesize bar = _bar;

- (id) initWithBar:(id)aBar {
self = [super init];
if(self != nil) {
_bar = aBar;
}
return self;
}

@end

在Foo类的一些方法的实现中,我使用了例如:

_bar = aBar

而不是使用:

bar = aBar

Xcode 4 引入的 'Analyse' 工具给了我这个警告(我使用的是 4.0.2 版):

类“Foo”中的实例变量“bar”从未被其@implementation 中的方法使用(尽管它可能被类别方法使用)

也许我应该使用:

self.bar = aBar

但是对于只读属性,这是行不通的,除此之外,我不确定在类本身中使用 setter 是否是一个好的做法。

我对 Objective-C 并不陌生,但我仍处于学习的初期。也许我做错了什么,并且在某处有错误的编码习惯。

如果你能帮助我,先谢谢你;)

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