Swift
乞力马扎罗的雪CYF
一只不孤独的猿。
展开
-
Swift学习笔记(一)——我的第一个Swift程序 Hello World
目前开发iOS必学的两门语言就是OC和Swift了,这两门语言目前呈现的趋势是此消彼长。但是为了很好的开发,学好两门语言是十分有必要的。现在我将开始Swift的学习。这是我的第一个Swift程序——Hello World。苹果在Xcode6中引入了一个开发Swift非常好的工具,叫做Playground.使用Playground可以很好的实时显示当前代码的输出,可以说是非常好玩。(1)打开Xc原创 2015-07-26 10:29:12 · 3067 阅读 · 0 评论 -
Swift学习笔记(十五)——程序员浪漫之用Swift+Unicode说我爱你
程序员常常被认为是呆板,宅,不解风情的一帮人。但是有时候,我们也可以使用自己的拿手本领来表现我们的浪漫。由于Swift语言是支持Unicode编码的,而Unicode最新已经支持emoji(绘文字)的表情符号。所以,我想,我们是不是可以使用Swift+Unicode来浪漫一把呢? 废话不说,直接上代码:let love = "某某某,我\u{1F491}\u{1F492}\u{原创 2015-07-27 12:22:26 · 3353 阅读 · 0 评论 -
Swift学习笔记(十六)——String字符串的基础操作
字符串作为一种十分重要的数据类型,有着很多的操作方法。我们一一来讲解。(1)String Interpolation:字符串插值不同的数据类型可以在打印的时候作为字符串的类型进行输出,可以使用“\(变量)”的方式进行输出。具体代码如下:可以发现在Swift中\n也是换行。在例子中用到了Swift中最重要的几类数据类型。var siInt:Int = 2;var siDouble:Do原创 2015-07-27 14:21:04 · 2763 阅读 · 0 评论 -
Swift学习笔记(二十一)——字典
字典是Swift中除了数组的又一个集合类型。下面来讲解字典的基本概念。var dictionary = [1 : "A" , 2 : "B" , 3 : "C" ]1)字典存储的数据是键和值的数据对;2)所存储的数据中,键和值可以是任意数据类型;3)一个字典只能存储固定一种键和值的数据类型搭配;显式定义字典的类型:DictionaryDictionary..原创 2015-08-07 22:02:40 · 1426 阅读 · 0 评论 -
Swift学习笔记(二十三)——Swift泛型初识
泛型的概念在Java中也是存在的,泛型可以使代码更为精炼,是对数据类型使用的一种优化。现在有一样的一个需求:写一个结构体,然后判断整型的是否相等。好,实现代码以及输出如下:。 如果此时又多了一个需求,需要判断两个浮点型的是否相等。那怎么办,代码实现基本和上面一样,不过我们又得重新写一遍浮点型的代码:。 以上两个代码将会导致代码可重用性变差且变得冗余,原创 2015-08-08 00:57:24 · 2197 阅读 · 1 评论 -
Swift学习笔记(二十四)——常量数组和常量字典
同Swift中的其他数据类型一样,数组和字典也可以分别定义为var,let,也就是变量和常量。定义为let常量的数组和字典都是不可变的。下面来简单看一下:import UIKitlet courses_dict = [1:"高等数学",2:"大学英语",3:"程序设计"] //常量let course_array = ["高等数学","大学英语","程序设计"] //常量原创 2015-08-10 22:00:13 · 2081 阅读 · 0 评论 -
Swift中实现Array数组和NSArray数组的相互转换与遍历
Array是Swift中的数组数据类型,而NSArray是OC中的数组数据类型,两者有区别有联系。在Swift中有时候难免会使用到OC中的一些东西,今天我们就来Swift中使用NSArray和Array,并且进行转化。(1)声明一个Array数组,并进行遍历,代码如下: let stringArray: Array = ["10", "20","30","40","50"]原创 2015-08-19 14:26:42 · 13247 阅读 · 0 评论 -
Swift学习笔记(三十二)——可变参数
(1)有时候我们需要传入的参数个数是不确定的,所以我们在声明参数的时候,可以使用可变参数:import Foundationfunc add(a:Int,b:Int,others:Int ...) -> Int{ var result = a + b for number in others{ result += number } retur原创 2015-09-16 15:49:45 · 1941 阅读 · 0 评论 -
Swift学习笔记(五)——在Background中启用控制台Console Output模式
在之前的介绍中可以知道,使用Xcode中的background来学习Swift是非常强大的,可以在右侧的界面中实时预览代码中的所有常量或者变量的值,非常方便。但是现在我们学习的Swift应该作为一种控制台程序出现,就像初学C,OC一样。所有代码的打印结果都可以在Console控制台中显示,以区别之前的所有参数值都显示在一起的情况。但是默认打开Background是没有所谓的控制台的。那怎么办呢?下原创 2015-07-26 16:53:27 · 2988 阅读 · 0 评论 -
Swift学习笔记(六)——变量的默认初始化值的问题
我们在Java中碰到过这样的问题,在定义一个变量后,没有对它进行赋值,但是可以正常输出,输出的默认值对于int整型变量来说就是0.对于字符串的话就是一个null,并不会出现任何的警告或者错误。但是来到Swift中一切又不一样了。 Swift是不会给一个变量提供默认值的,我们来看一段代码:var a:Intprintln(a)我们没有对a赋初值,就想要输出a的值,此时原创 2015-07-26 17:11:34 · 3294 阅读 · 2 评论 -
Swift学习笔记(七)——高级数据类型之Optionals
Optionals是Swift新引进的高级数据类型,可以认为是可选值。Optionals或者是一个值,或者是没有值,没有值时为nil。原创 2015-07-26 19:25:08 · 1472 阅读 · 2 评论 -
Swift学习笔记(九)——整型Int在Swift中表示的最大值最小值问题
我们在学习C语言的时候,总是会去记忆一些数值,如int能表示的最大值最小值,long型能表示的最大值最小值。或者是在其他语言或者其他的数据类型上,占多少个字节,占多少位,这是一件比较头疼的事情。 来到Swift中就比较简单了,直接用代码就可以看到类型所能表示的最值。。 如图所示,Int8表示占一个字节,Int16表示占两个字节,以此类推。可以看到我们一般使用原创 2015-07-26 20:12:35 · 9174 阅读 · 0 评论 -
Swift学习笔记(二十)——数组的基本操作
Swift中数组的基本操作具体如下:(1)计算数组长度.(2)判断数组是否为空. (3)数组新增一个元素。(4)数组合并。(5) 插入元素到任意位置。(6)删除任意位置的某个元素(7)删除数组最后一个元素(8)插入删除操作数组不能越界如以下操作都是非法的:。原创 2015-08-07 16:55:08 · 1908 阅读 · 0 评论 -
Swift学习笔记(二十八)——Switch-Case的高级用法
(1)Switch可以对整型的范围进行判断。代码如下:import Foundationlet a = 85switch a{ case 1..<80: println("bad") case 80..<90: println("good") default: println("OK") }输出结果为good。(2)Switch原创 2015-09-16 13:18:56 · 2754 阅读 · 0 评论 -
Swift学习笔记(二十九)——函数的使用1
(1)参数类型为可选型Optional. 如果参数为空,则输出??后面的字符串,否则输出可选型的参数值。import Foundationfunc sayHello(name:String?)->String{ let result = "Hello," + (name ?? "无名氏") return result}var nickname:String?nic原创 2015-09-16 14:57:49 · 1643 阅读 · 0 评论 -
Swift学习笔记(三十一)——参数的默认值
(1)如果一个参数有默认值,那么在调用的时候就不一定需要传入参数,可以使用默认值import Foundationfunc sayHello(name:String = "Everyone") -> String{ let result = "Hello," + name return result }var nickname:String = "Jack"pr原创 2015-09-16 15:37:11 · 4478 阅读 · 0 评论 -
Swift学习笔记(三十三)——常量参数,变量参数和inout参数
(1)一般默认在函数中定义的参数都是常量参数,也就是这个参数你只可以查询使用,不能改变它的值。(2)如果想要声明一个变量参数,可以在前面加上var,这样就可以改变这个参数的值了。如:func getName(var id:String).........此时这个id值可以在函数中改变。(3)一般默认的参数传递都是传值调用的,而不是传引用。 所以传入的参数在函数内改变,并不影原创 2015-09-16 16:25:42 · 4157 阅读 · 0 评论 -
Swift学习笔记(十四)——字符,常量字符串与变量字符串
在学习Java过程中,字符串碰到过String和StringBuffer,其中前者是不可变的,不能对字符串进行修改;后者是可变的,可以不断修改。来到Swift中,对字符串的定义变的更加简单。(1)概述Swift中,用let 声明的是字符串常量,不能进行修改。用var声明的是字符串变量,可以修改。通过代码来演示。let str1 = "Hello1"var str2 = "Hello2原创 2015-07-27 11:15:02 · 2198 阅读 · 0 评论 -
Swift学习笔记(十三)——区间运算符和for-in循环
区间运算符Range Operator也是Swift的一个比较突出的特点。可以用来表示一段数据的区域。区间运算符主要可以分为以下两类:Closed Range Operator :闭区间[a,b] a...b :注意:a和b之间是三个点Half-Closed Range Operator:前闭后开区间 a..原创 2015-07-27 08:38:04 · 3356 阅读 · 0 评论 -
Swift学习笔记(十)——Swift对数据溢出的智能检查
我们之前说过很多次,Swift是一门类型安全的语言,能把很多运行时或者编译时遇到的问题在写代码过程中就暴露出来,使程序员少犯错误。Swift对于溢出的检查也是非常智能的,不像C语言一样,溢出了都不知道,运行中出现各种意想不到的“惊喜”。。 在示例代码中,Int.max已经是当前所能表示的最大值,如果再执行加法操作,就会报错“Arithmetic operation '....原创 2015-07-26 20:31:10 · 1543 阅读 · 0 评论 -
Swift学习笔记(三)——布尔类型与if条件判断
在Swift中,布尔类型也是一种基本的类型,与Java等很多语言一样,布尔值分为true和false。布尔值用得最多的地方就是条件判断的时候,现在我们来学习一下。原创 2015-07-26 14:27:11 · 6989 阅读 · 0 评论 -
Swift学习笔记(八)——赋值运算符的返回值问题
在一般其他的语言中,赋值运算符是有返回值的。赋值运算可以放在if,while等的条件判断中。如a=2; if(c=a){ };此时c由于是一个非零值,所以if判断为真。但是这在Swift中时行不通的。原创 2015-07-26 19:39:55 · 1622 阅读 · 0 评论 -
Swift学习笔记(十一)——Swift中三元运算符的低级错误:Consecutive statements on a line must be separated by';'
今天在Xcode中的Background的中撸了几行Swift代码,居然出了不少错误,郁闷啊。找了好久才解决了bug,不爽啊。主要是一个三元运算符的小问题。报错是:Consecutive statements on a line must be separated by';'。现在贴出来和大家分享,希望后人不要遇到这样的低级错误。var score = 64let grade:String=原创 2015-07-26 21:44:11 · 7626 阅读 · 0 评论 -
Swift学习笔记(十二)——nil的聚合运算 Nil Coalescing Operator
关于Nil Coalescing Operator这个运算符,对于Swift来说也是比较新的内容,有人称之为nil的聚合运算,很多时候是和Optional可选运算符结合在一起使用的。运算符为两个问号??。我们根据一个小需求来学习这个运算符。 首先知道nil聚合运算符:a ?? b。 a ?? b等价于a != nil ? a! : b;其中这是一个三元运算符,a!是解包的原创 2015-07-26 22:33:38 · 3444 阅读 · 0 评论 -
Swift学习笔记(十七)——导入Foundation使用更多字符串功能
我使用的Xcode版本为最新的Xcode6.3,所以这里不同的版本可能会有所不同。在Xcode6.3版本中,默认创建playground项目时会导入一个UIKit包。但是如果没有导入UIKit包,可以通过import Foundation,来使用更多的字符串功能。(1)字符串首字母大写方法:capitalizedStringvar str:String = "hello,WORLD sw原创 2015-07-27 16:09:11 · 2953 阅读 · 0 评论 -
Swift学习笔记(十九)——Swift数组
Swift中的数组也是和其他如C,Java等语言的数组十分类似的。一个数组只能存储特定类型的数据。所存储的数据不一定是一个类的对象,可以是基础的数据类型。在这里可以再次发现,在Swift中的数据类型都是大写打头的:如Int,Double,Array等等。(1)声明数组以下使用三种不同的方式声明数组:三种方式的效果是一样的。var array1 = ["A","B","C"]//隐式声明原创 2015-07-27 22:56:37 · 1512 阅读 · 0 评论 -
Swift学习笔记(二十二)——字典的基本操作
(1)计算字典长度。(2)判断字典是否为空。(3)查询字典元素。(4)取出字典元素进行拼接。(5)字典中插入一个键值对。(6)字典修改某个键值对。(7)使用方法更新元素值。其实上述方法还有一个返回值:(8)删除字典中的一个元素原创 2015-08-08 00:39:08 · 1664 阅读 · 0 评论 -
在Xcode的Playground中使用时间轴功能
Xcode是一款非常优秀的开发环境,最近我常常用它来学习Swift。在选择创建项目时点击“Get started with a playground ”,就可以使用playground来进行开发了。 在Playground中,有一些特性和Matlab非常相似,就像是直接可以使用命令行输入一样,在右侧可以立即显示输出结果,非常的方便,现在我来演示一下在Xcode6中新引入的一个非常原创 2015-08-11 09:00:40 · 4143 阅读 · 0 评论 -
Swift学习笔记(二十五)——循环结构
Swift分别有四种循环结构:1) for - in2) for3) while4) do while(1)for - in循环一般用来遍历区间,遍历字符串,遍历数组,遍历字典。原创 2015-08-12 17:25:14 · 1397 阅读 · 0 评论 -
Swift学习笔记(二十七)——条件语句和Switch-case语句
注意事项:(1)if后面的条件可以不加()括号,Swift推荐不使用括号。(2)就算if-else后面的的执行语句只有一句话,也要使用{ }花括号,所以条件语句一定要使用括号。(3)case后面的break是可以省略的,官方推荐不使用break。会在执行一个匹配的case之后自动跳出。(4)case中的多个条件可以通过,逗号分隔,如case "A","B": 只要匹配其中的原创 2015-09-16 12:04:11 · 2555 阅读 · 0 评论 -
Swift学习笔记(三十)——函数的内部参数名和外部参数名
(1)外部参数名可以在函数调用的时候对于参数有更加直观的认识。即该参数名对外部可见。import Foundationfunc sayHello(username name:String)->String{ let result = "Hello," + name return result }var nickname:String = "Jack"printl原创 2015-09-16 15:13:22 · 3708 阅读 · 0 评论 -
Swift学习笔记(二)——常量与变量
这篇博客将会学习到Swift中的常量Constants和变量Variable。这是学习语言的基础。其中可以看到Swift每句后面基本都是没有;分号的,如果有加;分号的习惯,也可以加上。(1)常量声明:Swift将会使用关键字let来声明一个常量。定义常量之后不能再进行修改,否则会报错。let maxNum = 100maxNum = 200 //这里会报错,常量值不能进行修改;原创 2015-07-26 12:56:48 · 2248 阅读 · 0 评论 -
Swift学习笔记(十八)——字符串String.Index和Range详解
在Swift字符串的检索中,有时候返回的可能是一个范围,而不是一个具体的位置。这就要用到Swift中Range的概念。我们对此来进行详解。(1)字符串中检索某个单词方法:rangeOfStringvar str = "Hello Apple.Hello Swift"str.rangeOfString("Hello")//正向检索;str.rangeOfString("Hello", o原创 2015-07-27 17:32:15 · 11510 阅读 · 1 评论 -
Swift学习笔记(二十六)——扩展
1.扩展的作用:(1)使用扩展添加属性;(2)使用扩展添加方法,可变方法;(3)使用扩展添加构造器;(4)使用扩展添加下标;(5)使用扩展添加嵌套类型; 2.扩展的特性:(1)使用扩展添加属性,方法,可变方法,构造器,下标,嵌套类型;(2)可以使一个已有类型符合一个或者多个协议;(3)Swift的扩展与OC的类目(category) 类似原创 2015-08-12 17:25:52 · 1363 阅读 · 0 评论 -
Swift学习笔记(三十四)——函数类型
(1)函数也可以赋值给一个变量,此时这个变量的类型是什么呢?import Foundationfunc add(a:Int,b:Int) -> Int{ return a+b}let anotherAdd:(Int,Int) -> Int = addanotherAdd(3,4)(2)如果参数的返回值为空,那么这个函数类型应该怎么写呢?import Foundatio原创 2015-09-16 17:10:11 · 1526 阅读 · 0 评论 -
Swift学习笔记(四)——高级数据类型之元组详解
元组作为一种高级数据类型是很多其他语言中所没有的,Java,C,C++中都没有元组的概念,在Python中有元组的概念。所以相对来说比较特殊,我们要好好学习一下。 Tuples (元组),可以将多个不同的值集合成一个数据,如(true,"Jack","男"),(404,"Not Found")等等。特点就是可以有任意多个值,不同的值可以是不同的类型。(1)声明一个元组:表示注册原创 2015-07-26 15:45:35 · 1903 阅读 · 0 评论 -
Swift编程规范:保持代码优美的10个方法
本文出自:The Official raywenderlich.com Swift Style Guide,译文出自:SwiftGG这篇Swift风格指南与你看到的其他的指南有所不同,此篇指南主要焦点集中在打印和Web展示的可读写上。我们创建此篇风格指南的目的,是为了让我们的图书、教程以及初学者套件中的代码保持优美和一致,即使我们有很多不同的作者共同编写这些图书。我们的首要目标是一致性,可转载 2015-09-24 10:49:08 · 2276 阅读 · 0 评论