84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
学习swift的时候看到一些关于函数的命名规范和使用的疑惑。
比如下面这个函数,它是首字母大写的,同时它是定义在类外部的。
let data = UIImagePNGRepresentation(image)
这种写在类外面的函数叫做什么函数呢?
什么时候需要写在类外面呢?
为什么它是首字母大写呢?
ringa_lee
这种才是函数,类里面的叫做方法method。这是c函数,c没类型所以他只能这么写。首字母大写是规范,他是UIKit下的一个函数,所以前面有UI。
一般称 Class 内部的为 Method,也就是方法;而外部的成为 Function,也就是函数。
当你写在外面时,这个函数在调用时是不需要通过 Class 或者 Class 的实例去掉用的。
首字母大写的原因是因为,Apple 的古老传统。因为在 Objective-C 时代是没有命名空间一说的,所以很多情况下会出现名称冲突。所以 Cocoa 框架中的 Class 都是有前缀的,比如 NS、UI 等等(举个简单例子:UIImage 与 CGImage 如果没有前缀的话,你可以想象一下)。并且 Apple 约定前缀均为大写形式,故如此。
public func after_delay(time:NSTimeInterval,block: dispatch_block_t){ let time_uint64:UInt64 = UInt64(time) let delay = dispatch_time(DISPATCH_TIME_NOW, Int64(time_uint64 * NSEC_PER_SEC)) dispatch_after(delay, dispatch_get_main_queue(), block)}就比如这样,你也可以自己写成这样的函数,你调用的时候用就不需要用类或者结构体枚举等之类的来调用,可以直接使用
after_delay(1, block: { () -> Void in alert(notice, dismiss: false) })
UIImagePNGRepresentation()这个就是C函数。OC是可以编译C语言的。这个函数定义在UIKit框架中。
这种才是函数,类里面的叫做方法method。这是c函数,c没类型所以他只能这么写。首字母大写是规范,他是UIKit下的一个函数,所以前面有UI。
一般称 Class 内部的为 Method,也就是方法;而外部的成为 Function,也就是函数。
当你写在外面时,这个函数在调用时是不需要通过 Class 或者 Class 的实例去掉用的。
首字母大写的原因是因为,Apple 的古老传统。因为在 Objective-C 时代是没有命名空间一说的,所以很多情况下会出现名称冲突。所以 Cocoa 框架中的 Class 都是有前缀的,比如 NS、UI 等等(举个简单例子:UIImage 与 CGImage 如果没有前缀的话,你可以想象一下)。并且 Apple 约定前缀均为大写形式,故如此。
一般称 Class 内部的为 Method,也就是方法;而外部的成为 Function,也就是函数。
当你写在外面时,这个函数在调用时是不需要通过 Class 或者 Class 的实例去掉用的。
首字母大写的原因是因为,Apple 的古老传统。因为在 Objective-C 时代是没有命名空间一说的,所以很多情况下会出现名称冲突。所以 Cocoa 框架中的 Class 都是有前缀的,比如 NS、UI 等等(举个简单例子:UIImage 与 CGImage 如果没有前缀的话,你可以想象一下)。并且 Apple 约定前缀均为大写形式,故如此。
public func after_delay(time:NSTimeInterval,block: dispatch_block_t){
let time_uint64:UInt64 = UInt64(time)
let delay = dispatch_time(DISPATCH_TIME_NOW, Int64(time_uint64 * NSEC_PER_SEC))
dispatch_after(delay, dispatch_get_main_queue(), block)
}
就比如这样,你也可以自己写成这样的函数,你调用的时候用就不需要用类或者结构体枚举等之类的来调用,可以直接使用
UIImagePNGRepresentation()这个就是C函数。OC是可以编译C语言的。这个函数定义在UIKit框架中。