在.swift文件中,为什么有些func不在类括号内

时间:2015-02-27 22:47:49

标签: ios swift func

假设文件名是MessageBubbleCell.swift

class MessageBubbleCell: UITableViewCell {
...
}

func bubbleImageMake() -> 
(incoming: UIImage, incomingHighlighed: UIImage, outgoing: UIImage, outgoingHighlighed: UIImage) {...}

func的上下文不是问题。我不明白为什么有些函数超出了类{}的界限。类{}中有一些函数。那么差异是什么呢?

1 个答案:

答案 0 :(得分:2)

在类开始和结束括号中定义的方法是实例方法类型方法 -

  

你在开始和结束括号内写一个实例方法   它所属的类型。实例方法具有对所有的隐式访问权限   该类型的其他实例方法和属性。实例方法   只能在它所属类型的特定实例上调用。   如果没有现有实例,就无法单独调用它。

     

摘自:Apple Inc.“The Swift Programming Language。”

您还可以定义类型方法 - 这些方法在类本身上调用,而不是在实例上调用。类型方法使用class前缀定义(或者在结构的情况下为static),并以类名本身MyClass.createDefaultInstance()为例进行访问。

您在问题中所拥有的是一种全局方法 - 可以从任何地方调用它,而无需提供上下文。就个人而言,我会将其创建为类型方法,因为它提供了与MessageBubbleCell类逻辑关联的功能。