【Swift学习记录】
文章平均质量分 75
wangxiaobupt
这个作者很懒,什么都没留下…
展开
-
swift2 集合类型
数组创建一个空数组var someInt = [Int]()print("someInt is of type [int] with \(someInt.count) items")创建有默认值的数组var someInt = [Double](count: 3, repeatedValue: 0.0)// [0.0,0.0,0.0]原创 2015-07-16 13:49:53 · 615 阅读 · 0 评论 -
swift2 控制流
For循环for循环有两种形式,一种是for in 可以方便的变量数组等集合类型,另一张是与c语言类型的基本for循环。for inlet numberOfLegs = ["spider": 8, "ant": 6, "cat": 4]for (animalName, legCount) in numberOfLegs { print("\(anim原创 2015-07-17 13:20:11 · 628 阅读 · 0 评论 -
swift2 类和结构体
定义struct Resolution { var width = 0 var height = 0}class VideoMode { var resolution = Resolution() var interlaced = false var frameRate = 0.0 var name: String?}let s原创 2015-07-18 22:07:07 · 648 阅读 · 0 评论 -
swift2 闭包
闭包表达式语法{ (parameters) -> returnType in statements}let names = ["Chris", "Alex", "Ewa", "Barry", "Daniella"]names.sort({ (s1: String, s2: String) -> Bool in return s1 > s2})原创 2015-07-18 14:33:02 · 493 阅读 · 0 评论 -
swift2 函数
函数的定义与调用func sayHello(personName: String) -> String { let greeting = "Hello, " + personName + "!" return greeting}print(sayHello("Anna"))// prints "Hello, Anna!"print(sayHello("Brian原创 2015-07-18 12:14:04 · 658 阅读 · 0 评论 -
swift2 枚举类型
枚举语法enum CompassPoint { case North case South case East case West}var directionToHead = CompassPoint.WestdirectionToHead = .SouthdirectionToHead的类型被推断当它被CompassPoint的一个可能值初始原创 2015-07-18 21:35:33 · 635 阅读 · 0 评论 -
再探var与let
对于值类型来说,let声明的对象,值不能改变let i = 100i = 200这样则会报错而var声明的对象值则可以改变var j = 100j = 200对于引用类型来说,let声明的引用类型的对象的值也是不能改变么我们可以测试一下class student { var name:String init(name:Strin原创 2015-07-17 19:15:02 · 463 阅读 · 0 评论 -
swift2 属性
存储属性struct FixedLengthRange { var firstValue: Int let length : Int}var rangeOfThreeItems = FixedLengthRange(firstValue: 0,length :3)// 该区间表示整数0,1,2rangeOfThreeItems.firstValue = 6//原创 2015-07-19 11:31:11 · 508 阅读 · 0 评论 -
swift2 方法
实例方法class Counter { var count = 0 func increment() { count++ } func incrementBy(amount: Int) { count += amount } func reset() { count = 0 }}原创 2015-07-19 13:28:53 · 611 阅读 · 0 评论 -
swift2 Subscripts
下标脚本语法subscript(index: Int) -> Int { get { // 返回与入参匹配的Int类型的值 } set(newValue) { // 执行赋值操作 }}实例如下:struct TimesTable { let multiplier: Int subscri原创 2015-07-19 14:53:15 · 500 阅读 · 0 评论 -
swift2 继承
定义基类class Vehicle { var currentSpeed = 0.0 var description: String { return "traveling at \(currentSpeed) miles per hour" } func makeNoise() { // 什么也不做-因为车辆不一定会有噪原创 2015-07-19 15:13:45 · 552 阅读 · 0 评论 -
swift2 自动引用计数
原理class Person { let name: String init(name: String) { self.name = name print("\(name) is being initialized") } deinit { print("\(name) is being deinitial原创 2015-07-21 20:39:02 · 484 阅读 · 0 评论 -
swift2 泛型
泛型函数func swapTwoValues(inout a: T, inout b: T) { let temporaryA = a a = b b = temporaryA}var someInt = 3var anotherInt = 107swapTwoValues(&someInt, b: &anotherInt)print(someInt)原创 2015-08-01 21:32:54 · 608 阅读 · 0 评论 -
swift2 类型转换
class MediaItem { var name: String init(name: String) { self.name = name }}class Movie: MediaItem { var director: String init(name: String, director: String) { se原创 2015-07-21 21:17:55 · 619 阅读 · 0 评论 -
swift2 operators
赋值运算符元祖的赋值如下:let (x, y) = (1, 2)// 现在 x 等于 1, y 等于 2与c语言等语言的区别是,swift语言的赋值不返回值if x = y { // 此句错误, 因为 x = y 并不返回任何值}此特性可以使你避免将 == 写成=,否则会直接报错。浮点数的取余运算符print(10原创 2015-07-15 12:55:21 · 476 阅读 · 0 评论 -
swift2 运算符函数
运算符函数struct Vector2D { var x = 0.0, y = 0.0}func + (left: Vector2D, right: Vector2D) -> Vector2D { return Vector2D(x: left.x + right.x, y: left.y + right.y)}let vector = Vector2D(x:原创 2015-07-28 21:16:15 · 692 阅读 · 0 评论 -
swift2 析构过程
Swift 会自动释放不再需要的实例以释放资源。Swift 通过自动引用计数(ARC)处理实例的内存管理。通常当你的实例被释放时不需要手动地去清理。但是,当使用自己的资源时,你可能需要进行一些额外的清理。例如,如果创建了一个自定义的类来打开一个文件,并写入一些数据,你可能需要在类实例被释放之前关闭该文件。在类的定义中,每个类最多只能有一个析构函数。析构函数不带任何参数,在写法上原创 2015-07-27 11:47:04 · 647 阅读 · 0 评论 -
swift2 构造过程
存储属性的初始赋值类和结构体在实例创建时,必须为所有存储型属性设置合适的初始值。存储型属性的值不能处于一个未知的状态。你可以在构造器中为存储型属性赋初值,也可以在定义属性时为其设置默认值。注:当你为存储型属性设置默认值或者在构造器中为其赋值时,它们的值是被直接设置的,不会触发任何属性观测器构造器struct Fahrenheit {原创 2015-07-27 11:35:30 · 661 阅读 · 0 评论 -
swift实现单例模式
单例模式单例模式有三个要点:1.只有一个实例2.构造函数要私有3.构造过程线程安全实现class MyClass { static let sharedInstance = MyClass() var title = "" private init() { }}swift的static构造过程中使用了dispatch_onc原创 2015-08-08 19:32:01 · 719 阅读 · 0 评论 -
swift2 optionals
可选类型可选类型用来处理值可能缺失的情况,当在类型后面加上问号则可以定义为可选类型。可选类型一共有两种结果 没值,为nil 有值,拆包后可以拿到对应类型的值。比如string有个转换为int的方法,这个方法的返回值是int?,因为可能转换失败,转换失败则为nil。strToInt 和 snumToInt 即为int?类型,s原创 2015-07-14 22:37:17 · 662 阅读 · 0 评论 -
swift2 字符与字符串
字符串是值类型与NSString不同,创建了一个NSString实例,并将其传递给一个函数/方法,或者赋值给一个变量。传递或赋值的是该NSString实例的一个引用,除非您特别要求进行值拷贝,否则字符串不会生成新的副本来进行赋值操作。Swift 默认字符串拷贝的方式保证了在函数/方法中传递的是字符串的值。很明显无论该值来自于哪里,都是独自拥有的,原创 2015-07-15 22:22:26 · 625 阅读 · 0 评论 -
swift2 扩展
扩展就是向一个已有的类、结构体或枚举类型添加新功能。这包括在没有权限获取原始源代码的情况下扩展类型的能力。Swift 中的扩展可以:1.添加计算型属性和计算静态属性2.定义实例方法和类型方法3.提供新的构造器4.定义下标5.定义和使用新的嵌套类型6.使一个已有类型符合某个协议计算型属性extension Double { va原创 2015-07-24 22:11:30 · 584 阅读 · 0 评论