在 .swift 文件中,为什么有些函数不在 class 括号内

within .swift file, why are some func are not within the class bracket

假设文件名为 MessageBubbleCell.swift

class MessageBubbleCell: UITableViewCell {
...
}

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

函数的上下文不是问题。我不明白为什么有些函数在 class {} 的边界之外。 class {} 中有一些函数。那么有什么区别呢?

在 class 左右大括号内定义的方法是 实例方法 类型方法 -

You write an instance method within the opening and closing braces of the type it belongs to. An instance method has implicit access to all other instance methods and properties of that type. An instance method can be called only on a specific instance of the type it belongs to. It cannot be called in isolation without an existing instance.

Excerpt From: Apple Inc. “The Swift Programming Language.”

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

你的问题是一个全局方法——可以从任何地方调用它,而不需要提供上下文。我个人会将其创建为类型方法,因为它提供的功能在逻辑上与 MessageBubbleCell class.