Swift笔记3】的更多相关文章

开始整理Swift笔记了.打算直接用Playground去写,里面自带的Markup语法和Markdown差不多,显示的效果也不差于博客.而且用Xcode看代码也方便.所以这部分内容不再在博客里记录了,直接上传Github. 地址:https://github.com/wossoneri/swift_basics 需要看的直接Fork,我不定时提交,你也可以提交更新. 新博客: wossoneri.com…
这是跟在上一篇博文后续内容: --Core Foundation框架 Core Foundation框架是苹果公司提供一套概念来源于Foundation框架,编程接口面向C语言风格的API.虽然在Swift中调用这种C语言风格的API比较麻烦,但是在OS X和iOS开发过程中,有时候使用Core Foundation框架的API是非常方便的,例如在与C语言混合编码的时候. Core Foundation框架与Foundation框架紧密相关,他们具有与相同的接口,但是不同.Core Founda…
这是跟在上一篇博文后续内容: --重写方法 重写实例方法 在子类中重写从父类继承来的实例方法和静态方法.先介绍实例方法的重写. 下面看一个示例: class Person {        var name: String     var age: Int        func description() -> String { //实例方法         return "\(name) 年龄是: \(age)"     }        class func printCl…
这是跟在上一篇博文后续内容: --Swift中相关的属性 存储属性 Swift中的属性分为存储属性和计算属性,存储属性就是Objective-C中的数据成员,计算属性不存储数据,但可以通过计算其他属性返回数据.存储属性可以存储数据,分为常量属性(用关键字let定义)和变量属性(用关键var定义). 存储属性概念: 我们在前面曾用到过属性,Employee类和Department结构体.它们的类图如下,Employee 的部门属性dept与Department之间进行了关联. 我们可以在定义存储属…
这是跟在上一篇博文后续内容: --函数中参数的传递引用 类是引用类型,其他的数据类型如整型.浮点型.布尔型.字符.字符串.元组.集合.枚举和结构体全部是值类型. 有的时候就是要将一个值类型参数以引用方式传递,这也是可以实现的,Swift提供的inout关键字就可以实现.看下面的一个示例: func increment(inout value:Double, amount:Double = 1.0) { value += amount } var value : Double = 10.0 inc…
Swift 是一种适用于 iOS 和 OS X 应用的全新编程语言,它建立在最好的 C 和 Objective-C 语言之上,并且没有 C 语言的兼容性限制.Swift 采用安全的编程模式,增加了现代功能使 编程更容易.更灵活.更有趣.Swift 以成熟且备受宠爱的 Cocoa 和 Cocoa Touch 框架为 支撑,这是一个重新构想软件开发的机会. --我的第一行Swift代码 import Foundation             //表示引入Foundation框架 var str…
扩展 扩展能够让我们给一个已有的类.结构体.枚举等类型加入�新功能,包含属性和方法,甚至是构造器,下标,支持协议等等... 甚至是我们拿不到源码的类.结构体.枚举,我们依旧能够给它加扩展... 看到这里的时候,我还有点小激动呢...但是淡定下来之后,认为这TMD就是个大大的飞线,飞线,飞线...这让我们的代码难以理解全面(总要操心是不是哪里还有扩展,我没读到的..谁会不会在哪写个飞线出来以达到他不可告人的秘密,所以我们不得不在"代码规范"里写:扩展必须紧挨着类的实现写.但是拿不代码的类…
下标 swift同意我们为 类.结构体,枚举 定义下标,以更便捷的方式訪问一大堆属性.比方Array和Dictionary都是结构体,swift的project师已经为这两个类型提供好了下标操作的代码.所以.我们才干够通过 myArray[2]这样的方式,读取和改写这个struct中保存的数据. 并且.一个类型中能够定义多种下标訪问方式(重载,关于重载,在后面的笔记中会提到.这里先不用太在意) 下标能够定义为"读写"型的,也能够定义为"仅仅读"型,这样的行为.是通过…
协议(Protocols) 协议仅是用定义某些任务或者是功能必须的方法和属性. 类似于java里的interface的作用.但协议并不会实现详细的功能. 我猜这个名字源于OO中提到的"契约".但我并不认为这名字非常好,反而是interface这名字更容被接受.由于我认为协议这个名字非常easy和网络编程的时候的网络协议搞混,网络协议也通常简称为协议. 语法: protocol MyProtocol {      //协议定义 } struct MyStruct: MyProtocol1…
关闭 封闭件是从包括以下各项的组.它可以在代码被发送"片"... 行,不纠结的定义.继续. swift的闭包,有点像C和Objective-C语言里的 代码块 {--}  闭包能够捕捉而且保存在它所被定义的那个东西的上下文中定义的常量和变量. 其实,在上一个笔记--函数,中的全局函数和嵌套函数.全都是闭包的特殊形式. 全局函数--是一个带有函数名的,并不捕捉不论什么值的函数. 嵌套函数--是一个带有函数名的而且从它被定义的外层函数中捕捉数值的函数. 闭包表达式--是一个不带函数名的,使…
Swift 3 笔记 Swift: The Basics :介绍 Swift 一些零碎的点. Swift: Basic Operators :介绍 Swift 的操作符. Functions : 介绍 Swift 的函数,包括默认参数值,可变长参数,In-Out Parameters 等. Properties : 介绍 Swift 中的属性相关内容,包括存储属性.计算属性.属性观察者.类型属性.与 oc 中属性.实例变量的对比等. Methods : 介绍 Swift 中的方法,包含实例方法和…
构造过程 为了生成类.结构体.枚举等的实例,而做的准备过程,叫做构造过程. 为了这个过程,我们一般会定义一个方法来完毕,这种方法叫做构造器.当然它的逆过程,叫做析构器,用于在实例被释放前做一些清理工作以及一此自己定义化的处理. 为存储型属性设置初始值 类和结构体在生成实例那一刻,必须为全部的属性赋以特定的初始值. 要么在定义存储型属性的时候直接给个初始值,否则就必须在构造器里面指定一个初始值. 上面说的这两种情况,都不会触发存储型属性的监听者行为(property observer). stru…
Methods (方法) 实例方法(Instance Methods) 我认为看到这里.我们唯能八一八的就是swift的自做主张的行为了,反正它就是会以各种方式帮助我们来完毕让代码看起来非常奇怪的事情... 在之前函数那一篇笔记中,我们已经看到过參数的外部名字和内部名字的区分了,当然.在实例方法中,这个事情依旧存在,并且.swift又会帮我们做一些潜规则. swift在默认的情况下,会为方法的第一个參数仅仅提供函数内部使用的名字,而从第二个參数開始,既能够外部用,也能够内部用(就像我们在函数中见…
最近从Xcode6 beta4开始到现在的Xcode6.0.1,使用Swift一段时间了,Swift大体来说,语法与java.c++比较接近,相比objective-c要友好多了,也更容易上手,这里记录一下遇到的问题. 一. 类的使用 1. 属性初始化 Swift中类的属性(类似java成员变量)在声明之后,必须进行初始化,否则编译出错的,初始化方式主要有三种: (1) 声明的时候赋值 var name: String = "" (2) 使用构造函数初始化 class Student…
苹果官方文档 https://developer.apple.com CocoaChina帮助文档 http://www.cocoachina.com/special/swift/ 74个Swift标准库函数 http://letsswift.com/2014/06/74-swift-library-functions/ Swift中的问号?和感叹号! http://letsswift.com/2014/06/swift-questionmark-exclamatorymark/ 打开另一个st…
import Foundation /* 和类很相似 结构体 -> 封装 属性.方法 结构体是值类型 */ //定义一个LSQ类型的结构体 关键字struct struct LSQ { var Name: String = "" } struct LSQ1 { var Name: String var Age: Int } struct LSQ2 { var Name: String } //结构体实例和属性访问 //声明一个变量 var liu : LSQ = LSQ() )…
swift 中的运算符 import Foundation //字符类型 var char: Character = "a" char="b" println(char) var str:String str="abcceadfasdfl;jk\0dfaaaa 0001496" println(str) //查看长度 countElements 返回的元素个数 println(countElements(str)) var str1="…
swift变量的定义 1 import Foundation /* 变量的定义 变量的类型是可以不用写的 var a=10 常量的定义 let修饰 */ print(a) let b= print(b) /* 类型标注 指定变量的类型 :[空格]首字母大写 */ var x: Int x= print(x) let y: Int= print(y) /* 命名规范 名称不用再复合标志符的规范 */ print(_ttx) /* 基本类型 所有的数据类型首字母都要大写 整数类型.小数类型 Int…
1.元组类型 let cat =(age:4,weight:2,cocle:"black",beauty :true) if(cat.beauty){ printf("我就不告诉你我的小猫有 \(cat.age)岁,体重 \(cat.weight)斤"); }else{ printf("过来让我砍死 你"); } 2.optional 拆包和绑定 var tickit = "5000000"       //这里是有值,如果是…
变量使用var 来声明,常量是所有let ,变量名没什么限制 中文表情都可以 ,一般还是使用英文. var str = "luoshuai "  //swift语句后面不需要; let PI = 3.14159 var age = 0 ,height =0 也可以变量或者常量的类型 var  变量名称:  数据类型  =  初始值  //冒号后面有一个空格 var  str: String = " luoshuai " 当然其实不需要这样做,吸收了PHP 的优点,自…
swift交流群:342581988,欢迎增加. 今天真郁闷啊,把mac升级到10.10了.如今好了,曾经的程序都跑不了了.哎,不说了,让我郁闷会再. 说说条件推断吧,事实上这些基本的语法大家都知道肯定差点儿相同.好吧,我就自己写写看吧. 上代码 let individualScores = [78,32,32,53,23] var teamScore = 0 for score in individualScore{ if score > 50{ teamScore += 3 }else{ t…
字符串和字符 苹果要是不提供了unicode的字符串和字符,那就是他们公司全部人的脑袋都被门夹过 他自己家都要发非常多国家的版本号的软件,怎么可能不用unicode呢 此处略去30字... 这里能够拿出来说的.也就是 Swift的 String支持全部的NSString的api String中能够包括一些特殊字符: \0 (空字符)  \\ (反斜线)  \t (tab) \n (换行符)  \r (回车符)  \" (双引號)  \' (单引號) 还能够包括: 单字节 unicode 字符 \…
泛型 泛型是为了解决在针对不同数据类型.而做了同一种功能的操作导致的每一个类型我们都要写一份代码的问题. 有了泛型,我们能够仅仅写一份逻辑代码,而适应于不同的数据类型. func swapInt(inout num1:Int, inout num2: Int) {      var tmp = num1      num1 = num2      num2 = tmp } func swapDouble(inout num1: Double, inout num2:Double) {      …
基本运算符 Swift支持大部分的标准C语言的操作符,而且做了一些改进,以帮助开发人员少犯低级错误,比方: 本该使用==的时候,少写了个=, if x == y {-} 写成了 if x = y {-} 你就悲剧了 在使用 +,-,*,/ 的时候,得到的结果溢出了.你还是悲剧了.要做非常多检查保证不溢出才行 然而,在Swift中,我们再也不用操心这些问题了.编译器会帮我们搞定的 Swift还提供了两个C语言中没有的二元操作符 .. 和 - 接下来,我们就来看看Swift中的使用方法 术语(原文中…
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/enson16855/article/details/29829601 首先要下载XCode6,仅仅有beta測试版本号,使用safari打开链接:http://pan.baidu.com/s/1bn6GxbTpassword:sfwz,当然也能够去官方站点上下载. 下载完毕双击安装.例如以下: 安装完毕打开例如以下: 创建一个新的xcode项目,作为demo,例如以下: watermark/2/t…
高级运算符 位运算符 按位取反: ~ 按位与运算:  & 按位或运算:  | 按位异或运算:  ^ 按位左移运算: << 按位右移动算: >> 溢出运算符 自从swift里面提供了所谓的类型安全之后.我们就不能再用一个 Int.max 进行+1操作了,这样会导致报错.所以swift又提供了一个让我们在知道这会溢出的前提下,继续+1的溢出运算符,这听上去也不错. 溢出加法 &+ 溢出减法 &- 溢出乘法 &* 溢出除法 &/ 溢出取余 &…
一,变量和常量 /***************************基本数据类型*************************/ /************************************************************** 1.整数: Int 2.浮点数: Double表示64位浮点数,Float表示32位浮点数 3.布尔类型: Bool,布尔值只有 true 和 false 两种 4.字符串: String 5.字符: Character ******…
import Foundation /* 继承 class childClass: FatherClass{ } 优点 代码重用 缺点 增加程序的藕合度 父类的改变会影响子类 只能单继承 */ class Human{ var name: String="" func eat(){ println("吃饭") } func drink(){ println("喝水") } func sleep(){ println("睡觉")…
import Foundation /* 方法 */ //实例方法 一定需要依附于对象 class MyPoint { var x: Double = 0.0 var y: Double = 0.0 //类中的内部方法 第一个参数默认没有外部参数名,从第二个以后开始,方法名作为外部参数名 既作为内部参数又做为外部参数 //实例方法 func set(_x: Double,_y: Double) { x = _x y = _y } //实例方法 func show() { println("x:\…
import Foundation /* 枚举 语法结构 enum 类型 { case 值 } */ //定义一个枚举 写法1 enum LiuShiQun { case Name case Age case Sex case Add case Sub case Mul case Div } //定义一个枚举 写法2 enum LiuShiQun_1 { case Add,Sub case Mul case Div } //定义一个枚举变量 写法1 let enum_Name: LiuShiQu…