Objective-C属性命名中的语法与约定

Objective-C属性命名中的语法与约定,objective-c,coding-style,Objective C,Coding Style,也许在这个宏大的计划中并不重要,但我很好奇一些经验丰富的程序员是怎么想的 假设我们有一个布尔属性来跟踪是否启用了广告。由于“Ads”是复数形式,所以现在的复数形式“are”将用于一般写作 但是,在我的代码中,所有其他布尔属性的前缀都是“is”。示例:isUserLoggedIn’ Q:统一还是语法最好? // Uniform, but grammatically incorrect: @property (nonatomic, assign) BOOL isUserLoggedIn; @prop

也许在这个宏大的计划中并不重要,但我很好奇一些经验丰富的程序员是怎么想的

假设我们有一个布尔属性来跟踪是否启用了广告。由于“Ads”是复数形式,所以现在的复数形式“are”将用于一般写作

但是,在我的代码中,所有其他布尔属性的前缀都是“is”。示例:isUserLoggedIn’

Q:统一还是语法最好?

// Uniform, but grammatically incorrect:
@property (nonatomic, assign) BOOL isUserLoggedIn;
@property (nonatomic, assign) BOOL isAutoplayEnabled;
@property (nonatomic, assign) BOOL isAdsEnabled;

// or 

// Grammatically correct, but not uniform
@property (nonatomic, assign) BOOL isUserLoggedIn;
@property (nonatomic, assign) BOOL isAutoplayEnabled;
@property (nonatomic, assign) BOOL areAdsEnabled;

我继续使用AreadEnabled,因为它对我的影响较小。如果你认为我错了,请开导我

仅启用ADS或启用区域作为getter

主要的是,您应该只在这里重命名GETTER

@property (nonatomic, assign, getter=areAdsEnabled) BOOL adsEnabled;

区域已启用
。或者干脆投票结束:“许多好的问题都会根据专家经验产生一定程度的意见,但这个问题的答案往往几乎完全基于意见,而不是事实、参考资料或特定的专业知识。”我不在乎
is
前缀,大多数时候,如果(foo.isUserLoggedIn),它就不再符合语法了?无聊的。现在
if(foo.userIsLoggedIn)
会更好,我想。你应该使用
isFoo
作为获取工具,而不是完整的属性名。我知道这是允许的,但我对“投票关闭”和同时回答有一种不好的感觉。在这种“基于意见”的情况下,只给出您的意见。@MartinR I回答,因为我想表明他不应该重命名属性,而应该使用getter=attributeth,这就是为什么我两者都有