gpt4 book ai didi

objective-c - setter 和 getter 的方法名称约定

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

我希望我所有的实例变量都是私有(private)的,访问器/修改器在公共(public)方法中。我想知道在构建大型类时是否有一个我应该注意的命名约定,一个约定既是为了其他开发人员的可读性,也是一个防止方法名称与其他类冲突的约定。

例如,如果我想让一个类访问和更改名为“支持音乐家”的“质量”(不一定是特定变量),那么 [myInstance setSupportsMusicians:YES] [myInstance returnSupportsMusicians] 是可接受的名称,使用 setreturn 作为所有其他修改器和访问器的方法名称前缀?

显然我知道我可以随意命名它们,但我想征求一些意见,因为我知道命名约定是有组织的开发的重要组成部分。

最佳答案

你最好使用 @property 来声明这样的东西。这样您就可以获得它的所有实现优势(例如原子性、自动生成 ivar 等)以及方便的点语法(例如 myInstance.supportsMusicians = YES),所有这些都无需担心底层方法名称完全没有。

但是如果你确实想手动声明你的方法,或者只是想知道自动生成的方法是什么,命名约定是:

- (void)setSupportsMusicians:(BOOL)supportsMusicians;
- (BOOL)supportsMusicians;

对于某些类型的 bool 属性,还有一个附带情况,其中“is”用作可读性的前缀,例如

- (BOOL)isVisible;

然而,这并没有得到普遍遵守,可能被视为遗留惯例。

请注意,“get”作为前缀不应随意使用,因为它具有特定含义:它用于调用者提供要填充的缓冲区的上下文中,例如-[NSString getBytes:length:].

关于objective-c - setter 和 getter 的方法名称约定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13506773/

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