可以布尔属性根据编码指南合成访问器(例如:isEnabled getter)?

发布于 2024-12-06 20:16:03 字数 483 浏览 0 评论 0 原文

我已阅读Cocoa 的编码指南 用于访问器方法,它邀请您为实例变量编写 getter 方法,表示为形容词(例如:enabled)作为isEnabled而不是简单的enabled..有没有办法指示@synthesize 关键字来生成这样的 getter,还是应该始终手动编写 getter 方法声明和实现,让 @synthesize 关键字仅生成 setter 方法?我知道它们只是指导方针,但我认为最好遵守官方文档建议的行为:)

I've read the Coding Guidelines for Cocoa for accessor methods and it invites you to write getter methods for instance variables expressed as adjective (ex: enabled) as isEnabled instead of simply enabled.. is there a way to instruct the @synthesize keyword to produce such a getter or should you always write the getter method declaration and implementation by hand letting the @synthesize keyword generate only the setter method? I know they are just guidelines, but I think it is better to adhere to the behavior suggested by the official docs :)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

梦纸 2024-12-13 20:16:03

您可以执行以下操作:

@property (nonatomic, getter=isEnabled) BOOL enabled;

这将使用 isEnabled 作为 getter 方法的名称。

您只需照常 @synthesize 即可:

@synthesize enabled;

You can do the following:

@property (nonatomic, getter=isEnabled) BOOL enabled;

This will use isEnabled as the name for the getter method.

You will just @synthesize it as normal:

@synthesize enabled;
通知家属抬走 2024-12-13 20:16:03

正如@Douwe Maan在他的回答中提到的,“你可以在@property声明中设置getter/setter方法名称,然后@synthesize它” 让编译器处理 getter 和 setter 方法定义。

但是,如果您想拥有自己的 gettersetter 或两者的实现,您可以很好地“在实现文件中实现这些方法,并省略@synthesize行”

您可以“@synthesize属性并添加您自己的 getter/setter 方法的实现”,在这种情况下,编译器将仅使用您的getter/setter 方法实现而不生成它们。

As @Douwe Maan mentioned in his answer, "you can set the getter/setter method names in the @property declaration and just @synthesize it" to let the compiler take care of the getter and setter method definitions.

But, if you want to have your own implementations of getter or setter or both, you can very well "implement the methods in your implementation file and omit the @synthesize line".

You can "both @synthesize the property and add your own implementations of getter/setter methods", in which case compiler will just use your getter/setter method implementations without generating them.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文