Objective c 是#定义PFUser良好实践

Objective c 是#定义PFUser良好实践,objective-c,cocoa-touch,parse-platform,Objective C,Cocoa Touch,Parse Platform,我在Parse.com上工作,在很多VC中我都会调用PFUser*currentUser=[PFUser currentUser] 我想在前缀文件中定义currentUser可能是一个很好的做法。这是好的做法吗 另外,如何定义这样的对象?基本上,定义几乎从来都不是一个好的实践。几十年来,我们一直试图摆脱他们 当开发人员阅读currentUser时,他将不知道发生了什么,这将是一个WTF时刻。要避免WTF时刻,根据Bob叔叔的说法,代码质量可以用以下单位来衡量:“WTF/min”。如果您真的想做这

我在Parse.com上工作,在很多VC中我都会调用
PFUser*currentUser=[PFUser currentUser]

我想在前缀文件中定义
currentUser
可能是一个很好的做法。这是好的做法吗

另外,如何定义这样的对象?

基本上,定义几乎从来都不是一个好的实践。几十年来,我们一直试图摆脱他们

当开发人员阅读
currentUser
时,他将不知道发生了什么,这将是一个WTF时刻。要避免WTF时刻,根据Bob叔叔的说法,代码质量可以用以下单位来衡量:“WTF/min”。如果您真的想做这样的事情,请创建一个单行方法或属性

为未来的开发人员寻找最容易理解的代码——它甚至可能是你

不应使用
#define
,而应使用
静态常量

static const PFUser *kCurrentUser = [PFUser currentUser];

按照惯例,在常量名称前面加上小写的k,表示它是一个常量。如果您想了解更多关于为什么
静态常量
优于
#定义
,请看。

我认为currentUser不会引起WTF时刻。currentUser.name可读性很好。@bdv只有在几年后,其他人才尝试声明
MyUser*currentUser
,这将转换为
MyUser*[PFUser currentUser]
谢谢,我想这是一个很好的声明。然而,它不是完全静态的。用户的值可以更改。我还应该称之为常量吗?不,因为静态变量只能赋值一次。如果
[PFUser currentUser]
曾经发生过更改,那么不幸的是,每次定义或更改
currentUser
时,您最好还是坚持使用该特定的方法调用或存储对它的引用。