【问题标题】:Grammar vs convention in Objective-C property naming [closed]Objective-C属性命名中的语法与约定[关闭]
【发布时间】:2013-11-02 15:32:31
【问题描述】:

可能在宏伟的计划中并不重要,但我很好奇一些更资深的程序员的想法。

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

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

问:哪个最好:统一性还是语法?

// 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;

我继续使用 areAdsEnabled,因为它对我的困扰较少。如果您认为我错了,请启发我。

【问题讨论】:

  • areAdsEnabled。或者只是adsEnabled
  • 投票结束:“许多好的问题会根据专家经验产生一定程度的意见,但这个问题的答案往往几乎完全基于意见,而不是事实、参考资料或特定专业知识。”
  • 我不关心 is 前缀,大多数时候它不再符合语法 - if(foo.isUserLoggedIn)?嗯。现在if(foo.userIsLoggedIn) 会更好,IMO。
  • 您应该使用 isFoo 作为 getter,而不是完整的属性名称。

标签: objective-c coding-style


【解决方案1】:

仅 adsEnabled 或 areAdsEnabled 作为 getter。

主要的是,你应该只在此处重命名 GETTER

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

【讨论】:

  • 我知道是允许的,但是我对“投票关闭”和同时回答有一种不好的感觉。在这种“基于意见”的情况下,只会给出您的意见。
  • @MartinR 我回答是因为我想表明他不应该重命名属性,而是使用 getter= 属性
  • 这就是为什么我有两个
猜你喜欢
  • 2012-12-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多