Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/115.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在.swift文件中,为什么有些func不在类括号内_Ios_Swift_Func - Fatal编程技术网

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

Ios 在.swift文件中,为什么有些func不在类括号内,ios,swift,func,Ios,Swift,Func,假设文件名为MessageBubbleCell.swift class MessageBubbleCell: UITableViewCell { ... } func bubbleImageMake() -> (incoming: UIImage, incomingHighlighed: UIImage, outgoing: UIImage, outgoingHighlighed: UIImage) {...} func的上下文不是问题。我不明白为什么有些func在类{}的边界之外。

假设文件名为MessageBubbleCell.swift

class MessageBubbleCell: UITableViewCell {
...
}

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

func的上下文不是问题。我不明白为什么有些func在类{}的边界之外。类{}中有几个func。那么有什么区别呢?

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

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

摘自:苹果公司《Swift编程语言》

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


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

@LeonardoSavioDabus-是的,语法是错误的,但我认为问题的实质是关于定义的位置,而不是格式:)顺便说一句,这样编写的方法不会接受任何参数并返回4。如果要修改参数,可以在参数前面使用inout。在调用该方法时,您需要在变量(inout)前面添加,在iBooks商店上调用itCheck out这个系列:“Swift编程系列”在iBooks商店上查看这本书:Apple Inc.的《将Swift与Cocoa和Objective-C结合使用》。谢谢。我感谢你的回答!