我已经想了很长时间了。
假设我将创建一个 UILabel,这个标签将包含一个名称。所以不用多想,我将这个 UILabel 命名为 |name|。
然后我将有一个 NSString 来保存名称的实际字符串。所以我认为命名字符串 |name| 会更合适吧?
但是我会给 UILabel 取什么名字呢?
我想把它命名为labelName。
但这是非常不鼓励的匈牙利符号吗?
这是一个死胡同?
我已经想了很长时间了。
假设我将创建一个 UILabel,这个标签将包含一个名称。所以不用多想,我将这个 UILabel 命名为 |name|。
然后我将有一个 NSString 来保存名称的实际字符串。所以我认为命名字符串 |name| 会更合适吧?
但是我会给 UILabel 取什么名字呢?
我想把它命名为labelName。
但这是非常不鼓励的匈牙利符号吗?
这是一个死胡同?
Objective-C 是一种冗长的语言。在命名变量和参数时,通常包括变量和参数的类型。
UILabel *nameLabel = ...
NSString *name = ...
在原始值(甚至 NSStrings 和 NSNumbers)的情况下,通常会省略类型。
每当您遇到这种情况时,请思考,重新思考并更改名称。
在您的情况下,您可以使用:
UILabel *nameLabel;
NSString *name; //*nameString; // *nameValue;
您可以为类型添加后缀(虽然不是一个好的做法,但也有例外),如下例所示。
nameArray
不是好名字应该是names
NSArray *names; // instead of nameArray
我会说您的主要问题是您的模型正在泄漏到视图中。您的标签(显然是一个视图)最好不知道它所呈现的模型的任何信息。
举个例子看看UITableViewCell
。它有一个叫
textLabel
detailTextLabel
imageView
这些可用于呈现几乎任何类型的模型数据,这些数据具有一些主要文本以及可选的图像和/或更多要呈现的文本。
您可能还注意到,在这些示例中,UIKit 为变量添加了类型的后缀(Label
在标签末尾添加)。同样的事情也适用backgroundColor
于 UIView 上的属性。