Swift -- protocol、extension

protocol ExampleProtocol{

var simpleDescription:String{get}

mutating func adjust()

}

class SimpleClass:ExampleProtocol{

var simpleDescription:String = "A very simple class"

var anotherProperty:Int = 69105

func adjust(){

simpleDescription += " Now 100% requested"

}

}

var a = SimpleClass()

print(a.simpleDescription)

a.adjust()

print(a.simpleDescription)

struct SimpleStructure:ExampleProtocol{

var simpleDescription:String = "A simple structure"

mutating func adjust(){

simpleDescription += " (adjust)"

}

}

var b = SimpleStructure()

print(b.simpleDescription)

b.adjust()

print(b.simpleDescription)

extension Int:ExampleProtocol{

var simpleDescription:String{

return "The number is \(self)"

}

mutating func adjust(){

self += 50

}

}

println(7.simpleDescription)

extension String:ExampleProtocol{

var simpleDescription:String{

return "My name is \(self)"

}

mutating func adjust(){}

}

print("XingXing".simpleDescription)

时间: 2024-10-29 12:16:41

Swift -- protocol、extension的相关文章

Objective -C NSDate、Category   、Extension、Protocol

NSDate的使用 NSDate是Cocoa中用于处理日期和时间的基础类,封装类某一给定的时刻,具体的日期,时间和时区 使用+date方法获取当前日期和时间 例如  :NSDate*nowDate = [NSDate date]: 注意,,NSLog(@"%@",nowDate): 无论你是哪个时区的时间,打印时间,打印时总是打印对应的0时区时间 NSTimeinterval NSTimeInterval(即double类型) 用以表示以秒为单位的时间间隔 可以使用-initWithT

category、protocol、delegate总结

一.category(类别) 类别是一种类扩展的机制,能为现有的类添加新方法. ①类别的基本语法 @interface部分,如: @interface NSString (NumberConvenience) - (NSNumber *) lengthAsNumber; @end 我们为NSString类添加了名为NumberConvenience的类别. 注: 类别只可以添加方法,不可以添加实例变量 类别可以添加属性,但属性必须是@dynamic类型的  @implementation部分 @

黑 马 程 序 员_视频学习总结<Objective-C>----04 内存管理、protocol、block、ARC

---------------------- ASP.Net+Unity开发..Net培训.期待与您交流! ---------------------- 一.内存管理 1.为什么要用内存管理: 移动设备的内存极其有限,每个app所能占用的内存是有限制的.当app所占用的内存较多时,系统会发出内存警告,这时得回收一些不需要再使用的内存空间.比如回收一些不需要使用的对象.变量等 2.管理范围: 任何继承了NSObject的对象,对其他基本数据类型(int.char.float.double.stru

Objective-C:分类(Category、extension)

分类(Category .Extension) (一)分类的划分 (2) 1.(命名的类别)类别Category:只能添加新的方法,不能添加新变量. 2.(未命名的类别)类的扩展Extension://扩展一般直接写在类的实现文件中     //扩展中定义的都是类中私有的实例变量和方法 (二)分类的使用 (1)分类只能增加方法(包括类方法和对象方法),不能增加成员变量 (2)在分类方法的实现中可以访问原来类中的成员变量: (3)分类中可以重新实现原来类中的方法,但是会覆盖掉原来的方法,导致原来的

【iOS】Swift中扩展extension与协议protocol

一起连带前面几篇Playground小结代码都转到github上了,注释写了很多,主要方便自己以后可以翻翻看.Swift语法主要部分差不多就这些了.当然还有泛型.运算符重载.ARC.闭包之类的补充. 一.扩展(extension) 扩展 extension(类似OC中的分类,但Swift中没有名字), 即使在没有权限获取到原始代码的情况下,为类增加新功能. 注意: 只要定义了扩展, 那么该扩展对该类的实例都是可用的. extension SomeType{ //添加到SomeType的新功能写在

Swift protocol extension method is called instead of method implemented in subclass

protocol MyProtocol { func methodA() func methodB() } extension MyProtocol { func methodA() { print("Default methodA") } func methodB() { methodA() } } // Test 1 class BaseClass: MyProtocol { } class SubClass: BaseClass { func methodA() { print(

Xcode 6.3 之后扩展:Extension、协议:Protocol、分类:Category 都到哪里去了?

新的Xcode中这三个文件类型被放到一块去了: 选中 Objective-C File 后, 出现下面的页面就可以选择了:

swift protocol 见证容器 虚函数表 与 动态派发

一.测试代码: //protocol DiceGameDelegate: AnyObject { //} // //@objc protocol OcProtocol{ //    @objc func OcFunc() //} protocol SeedProtocol { func NormalFunc() func ExtenImpFunc() //@objc func OcFunc() } extension SeedProtocol{ func ExtenImpFunc(){} fun

Swift扩展(Extension)

在现有类和结构体的类型基础上,扩展新的功能. 语法: extension SomeType{ // new functionality to add to SomeType goes here } An extension can extend an existing type to make itadopt one or more protocols.Where this is the case, the protocol names are written in exactly the sa