swift中的类型方法

Advertisement

定义
Instance methods, as described above, are methods that are called on an instance of a particular type. You can also define methods that are called on the type itself. These kinds of methods are called type methods. You indicate type methods by writing the static keyword before the method’s func keyword. Classes may also use the class keyword to allow subclasses to override the superclass’s implementation of that method.
实例方法,正如上边提到的,是那些被实例调用的方法。你也可以定义一些类型自己调用的方法。这种方法被称作类方法。你可以表明是类方法,在方法前加上static关键字。类也可以应用class关键字允许子类重写父类的实现。

注意
在oc中,你仅仅可以为类定义类型方法。在swift中,你可以类型方法为所有的类,结构体和枚举。每种类型方法都显示的由类型来限定应用范围。
Within the body of a type method, the implicit self property refers to the type itself, rather than an instance of that type. This means that you can use self to disambiguate between type properties and type method parameters, just as you do for instance properties and instance method parameters.
在类型方法内部,隐式的self指的是类型自己而不是实例。这意味着你可以应用self来区分参数还是属性。
More generally, any unqualified method and property names that you use within the body of a type method will refer to other type-level methods and properties. A type method can call another type method with the other method’s name, without needing to prefix it with the type name. Similarly, type methods on structures and enumerations can access type properties by using the type property’s name without a type name prefix.
大多数情况下,在类方法内部你应用的方法和属性可以引用其他的方法和属性。结构体和枚举也具有同样的功能。

Similar Posts:

  • Swift中声明initialize方法

    /*类方法关键词class*/ override class func initialize () {         super.initialize()          }

  • swift结构体和类的实例方法和类型方法-006-

    //: Playground - noun: a place where people can play import UIKit //-----结构体和类的实例方法和类型方法--------// //方法就是定义在类,结构体,枚举中的函数 //Swift中结构体和枚举都可以定义方法,是和C/OC的重大区别 //实例方法(Instance Method):使用类.结构体.枚举的实例调用的方法 //类型方法(Type Method):使用类.结构体.枚举类型本身调用方法 //1.实例方法 clas

  • Swift之键盘类型与常见的键盘隐藏方法

    // // ViewController.swift // UITextField键盘类型 // // Created by mac on 15/4/19. // Copyright (c) 2015年 mac. All rights reserved. // import UIKit class ViewController: UIViewController ,UITextFieldDelegate{ var text = UITextField() var pwdtext = UIText

  • Swift:实例方法和类型方法

    大家对"实例方法和类型方法"的概念应该不陌生了,在objective-c中很常见.例如: 1. 实例方法(减号开头) - (instancetype)init; 调用的时候,必须先进行实例化一个对象(alloc), 然后调用init方法. 2. 类型方法(加号开头) + (void)animateWithDuration:(NSTimeInterval)duration animations:(void (^)(void))animations 调用的时候,直接使用UIView的类型就

  • Swift 中的可选类型(Optional)

    在 Swift 中,我们使用可选类型来表示值有可能缺失的情况.一个可选类型的值表示他有值并且值等于 x 或者他根本就没有值. 注意: 可选类型在C语言和OC语言中并不存在.OC中与可选类型意思最接近的是一个本该返回某个类型的对象的方法可以返回nil,nil在此时表示没有有效值.然而,OC中的这种机制只对对象类型有效,对结构体,基本C类型和枚举等都无效.对于这些类型,当他们没有有效值的时候,OC会返回一些特殊常量(比如 NSNotFound).这种方式假定方法的调用者知道这个特殊值并且记得去检测这

  • [置顶] 七个Swift中的陷阱以及避免方法

    文章总结翻译自:Seven Swift Snares & How to Avoid Them Swift正在完成一个惊人的壮举,它正在改变我们在苹果设备上编程的方式,引入了很多现代范例,例如:函数式编程和相比于OC这种纯面向对象语言更丰富的类型检查. Swift语言希望通过采用安全的编程模式去帮助开发者避免bug.然而这也会不可避免的产生一些人造的陷阱,他们会在编译器不报错的情况下引入一些Bug.这些陷阱有的已经在Swift book中提到,有一些还没有.这里有七个我在去年遇到的陷阱,它们涉及S

  • Swift 中让一个属性是一个类型又采纳一个协议

    如题, 比如 @protocol A <NSObject> @end @interface B : UIView @property UIView C<A> *c; @end 这个代码用swift怎么实现 protocol A { } class B: UIView { //var c: C, A //var c: protocol<C,A> // 上面两种都不行 } 在线等... --cut-- Havthgem在1970-01-01 22:32:29回答到: 在 S

  • Swift中的GCD&mdash;&mdash;常见的dispatch方法

    什么是GCD Grand Central Dispatch (GCD)是Apple开发的一个多核编程的解决方法.该方法在Mac OS X 10.6雪豹中首次推出,并随后被引入到了iOS4.0中.GCD是一个替代诸如NSThread, NSOperationQueue, NSInvocationOperation等技术的很高效和强大的技术,它看起来象就其它语言的闭包(Closure)一样(在Swift确实成为了闭包),但苹果把它叫做blocks. 我们一般使用如下的dispatch方法: 解释:

  • float类型数据在计算机中的表示方法以及转换方法

    一.float类型数据在计算机中的表示方法 A. 下面的代码为什么第一行返回false,而第二行和第三行都返回true. Console.WriteLine("1.123f + 1.345f == 2.468f ? {0}", 1.123f + 1.345f == 2.468f); // False Console.WriteLine("1.123f + 1.344f == 2.467f ? {0}", 1.123f + 1.344f == 2.467f); //

  • Hibernate 3中对Java 1.5以上版本中枚举类型的映射方法

    Hibernate 3中对Java 1.5以上版本中枚举类型的映射方法,请参考以下链接: UserType for persisting an Enum with a VARCHAR column https://www.hibernate.org/265.html UserType for persisting a Typesafe Enumeration with a VARCHAR column https://www.hibernate.org/172.html 找了不少资料发现这两篇文

Tags: