2013-05-01 29 views
4

我一直想知道相当长的时间该怎么做。Objective-C命名UILabel iOS

假设我将创建一个UILabel,该标签将包含一个名称。因此,如果不给它太多的想法,我会命名这个UILabel | name |。

然后我会有一个NSString,它将保存名称的实际字符串。 所以我想命名字符串|名称|会更合适吗?

但是,我会命名UILabel呢?

我想过为它命名labelName。

但是,这是匈牙利符号,是非常灰心?

这是死路一条?

回答

8

Objective-C是一种冗长的语言。命名它们时通常包括变量和参数的类型。

UILabel *nameLabel = ... 
NSString *name = ... 

在原始值(甚至是NSString和NSNumbers)的情况下,通常省略类型。

+0

超过我的速度...几乎相似:) – 2013-05-01 12:52:56

+2

最后我发现有些人和我一样认为。我刚才被告知,不要在名称中包含该类型。我想过要做一些类似“labelName”的事情,以便在我有很多UILabels时让代码看起来更清晰(因此它们将对齐)。但后来我也停止了这种习惯。 – WYS 2013-05-01 13:02:39

+1

如果我看到一个名为'labelName'的变量,我会假定它是一个存储标签名称的字符串。我推荐'nameLabel'。 – DrummerB 2013-05-01 13:07:04

6

无论何时您遇到这种情况,请考虑重新考虑并更改名称。

在你的情况,你可以使用:

UILabel *nameLabel; 
NSString *name; //*nameString; // *nameValue; 

可以后缀类型(虽然不是一个很好的做法,但例外的是有),如下面的例子。

nameArray不好的名字应该是names

NSArray *names; // instead of nameArray 
+0

为什么不是很好的做法?这很常见,即使在Apple的API中也是如此。 – DrummerB 2013-05-01 12:55:18

+0

@DrummerB:后缀的类型意味着,'NSArray * nameArray'而不是'names'。 – 2013-05-01 12:56:14

+0

当然,但在这种情况下,它非常好。 – DrummerB 2013-05-01 12:58:27

0

我要说的是你的主要问题是,你的模型被泄漏到视图。你的标签(显然是一个视图)最好不知道它所呈现的模型。

UITableViewCell为例。它网点称为

  • textLabel
  • detailTextLabel
  • imageView

这些可以被用于呈现几乎任何类型的模型数据的具有某些正文和任选的图像和/或更文本呈现。

您可能还会注意到,在这些示例中,UIKit将该类型后缀后缀(在标签的末尾添加Label)。同样的事情适用于UIView上的backgroundColor属性。

+0

不一定。如果他正在实施一个控制器,他是不是有一个视图(标签)和一个模型(字符串)? – DrummerB 2013-05-01 12:54:32