![]() |
1
12
用破旧的汽车来比喻。。。 把一个类想象成一个制造类实例的工厂。例如,您可能有一个Car类,并且可以声明如下方法:
然后该方法将创建一个新的Car实例,设置颜色,并返回它:
|
![]() |
2
8
这是一个老帖子,但由于它首先出现在谷歌搜索,我想我应该添加到它。 我不打算谈论用作工厂方法的类方法。我想谈谈它们在实用方法中的用法。对于独立于状态的实用程序方法,可以/应该使用类方法。这是什么意思?例如,如果对所有实例都使用相同的方式格式化日期,那么这是一个实用方法,应该是一个类方法。把实用方法想象成螺丝刀。你不需要每次你想用螺丝刀做点什么的时候都用它做一个新的实例。螺丝刀保持不变。例如,我有一个类,它包含一个私有方法,该方法生成一个emdash字符串,用于显示给视图。此方法不依赖于状态,因此不会因实例而异。想想像常量这样的类实用程序方法。
您可以在类中一般地调用此方法(在我的示例中是私有的),如下所示:
我特意选了一个小例子来说明这一点。如果要在类中多次使用此字符串,则只需将其设置为类实用程序方法。注意,我不是用名称来引用类,而是用[self class]来泛化它,因为它是在内部调用的。如果它是公开的,并且您想从另一个类调用它,那么像往常一样通过类名引用它。 |
![]() |
3
0
方法处理
等级 方法可以做什么 特定类别
我认为很少看到类方法不返回某些内容。 |
![]() |
4
0
您不需要同时实现这两个目标。在设计类时,任何一个选项都是可用的。
|
![]() |
5
-1
类方法签名的前缀为+,实例方法的前缀为-,因此在头文件中,声明如下所示:
当然,当您在.m文件中定义方法时,同样的规则也适用。 |
![]() |
WkWk · Apple Watch动作通知不起作用 2 年前 |
![]() |
Otavio Miguel · 在手机中保留我自己未发布的ios应用 2 年前 |
![]() |
Nico Passaglia · 移动键盘向上移动站点 6 年前 |