可以布尔属性根据编码指南合成访问器(例如:isEnabled getter)?
我已阅读Cocoa 的编码指南 用于访问器方法,它邀请您为实例变量编写 getter 方法,表示为形容词(例如:enabled
)作为isEnabled
而不是简单的enabled
..有没有办法指示@synthesize
关键字来生成这样的 getter,还是应该始终手动编写 getter 方法声明和实现,让 @synthesize
关键字仅生成 setter 方法?我知道它们只是指导方针,但我认为最好遵守官方文档建议的行为:)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以执行以下操作:
这将使用
isEnabled
作为 getter 方法的名称。您只需照常
@synthesize
即可:You can do the following:
This will use
isEnabled
as the name for the getter method.You will just
@synthesize
it as normal:正如@Douwe Maan在他的回答中提到的,“你可以在@property声明中设置getter/setter方法名称,然后@synthesize它” 让编译器处理 getter 和 setter 方法定义。
但是,如果您想拥有自己的 getter 或 setter 或两者的实现,您可以很好地“在实现文件中实现这些方法,并省略@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.