最新更新文章[移动开发] Advanced Swift中文版《Advance Swift》是由objc.io出版的一本深入介绍Swift特性的书。目前,《Advance Swift》还没有完成,作者仅放出了预览版(2015.10.15),并且声明会在2015年底前写完。预览版和最终版有一些区别,我会先根据预览版翻译,等最终版放出后再及时更新。如果你发现文章有错别字、语义不通顺、翻译不当等问题,请及时留言或私信我,我们共同打造一个高质量的Swift专题。每篇... [移动开发] Swift入门(十二)——利用Extension添加逆序输出字符串方法Swift好像没有自带逆序输出字符串的方法,于是决定通过拓展(Extension)给String类添加一个逆序输出字符串的reverse方法。首先新建一个Swift文件,命名规则不太清楚,于是暂且模仿OC叫做String+Operation吧,然后实现我们需要拓展的方法。下面先贴上代码,然后解释一下这段代码。//String+Operation.swifft import Foundation//逆... [移动开发] Swift入门(十一)——类型转换与is、as操作三种操作:is、as?和as!Swift是强类型语言,但也允许开发者通过is、as?和as!这三种操作来对类型进行判断和强制转换。其中is用作类型判断,而as?和as!则分别是类型转换的可选形式和强制形式。在这里强调一下,swift中比较常用的向下转换(downcast)是没有as操作符的。为了方便后面的解释,这里假设定义了三个类,Fruit、Apple和Orange,其中Apple和Orange都... [移动开发] Swift入门(十)——循环引用、弱引用和无主引用最近看到swift里面不仅有循环引用和弱引用(weak),还添加了无主引用(unowned),于是写了一些demo,这里总结一下。和OC一样,Swfit默认也是基于ARC进行内存管理的,因此虽然简单,但如果不注意任然会出现循环引用问题(Retain cycle),导致内存泄露。在OC中,可以很简单的举出一个循环引用的例子。比如有两个类A和B,A中有一个属性是B类的实例,而B中又有一个属性是A类的实例... [移动开发] Swift入门(九)——String与Int、Double、Float等数字相互转换三种转换模式任何语言里面,Int、float、double等数字类型自成一派,但它们和String类型之间的转换总是不太方便,这里总结一下它们相互转换的方法。总结下来一共有三种转换模式,分别举例说明。一、String转数字这里以String类型转Int类型为例。String转其他的数字类型(Float、Double等)大同小异。主要用到的方法是String类型的toInt方法。注意这个方法返回的是I... [移动开发] Swift入门(八)——功能强大的求余运算符求余运算符在大部分语言中,%都是求余运算符。其功能非常简单,不过也只支持int类型正数之间的求余。 比如 10 % 3 = 1。严格来说,正整数之间的求余的定义如下: 对于任意a,b∈N*,定义m = a % b,其中m满足: a = b * m + r且0 <= r < b Swift中的求余使用场景拓展Swift中的求余,不再是两个int类型正数之间的运算符了。不仅负数可以求余,浮点数... [移动开发] Swift入门(七)——结构体(Struct)引子之前我们在用Int,String等类型的时候,可能没有仔细研究过,其实这些基本类型与C或者Java不一样,不是严格的“基本类型”,他们其实是经过封装的结构体。按住Alt键点击Int类型后,可以看到Int结构体的完整定义/// A 64-bit signed integer value /// type. struct Int : SignedIntegerType { var value... [移动开发] Swift入门(六)——字典(Dictionary)字典的定义和上一篇文章讲到的数组类似,字典也是用来存放相同数据类型的元素的数据结构。不过字典是通过键(Key)来查找特定的值(Value),字典中存放的每一个数据项(item)都是这样的一个键值对。哈希化每一个键值对的值,没有特殊要求,但是只有可以哈希化的类型的变量,才可以作为键值对的键。可以哈希化是指,该类型的变量,必须提供一个可以计算出自身哈希值的方法。哈希值不相同的变量,自身一定也不相同,反之... [移动开发] Swift入门(五)——数组(Array)集合集合的定义Swift中提供了两种数据结构用于存放数据的集合,分别是数组(Array)和字典(Dictionary)。他们的主要区别在于数组中的元素由下标确定,而字典中的数据的值由数据的键(Key)决定。以下我们认为集合就是数组或字典。集合的可变性我们可以定义一个集合常量或者集合变量。一旦定义为常量,就意味着集合的长度、内容和顺序都不能再修改了。比如,定义为常量的数组,不能再向其中添加新的元素。数... [移动开发] Swift入门(四)——可选类型(Optionals)与断言(Assert)可选类型是什么?首先看一个问题,Swift中String类型的变量有一个叫做toInt的方法,可以把String类型变量转换为Int类型变量。var stringValue = "5" var intValue = stringValue.toInt(); println("intvalue = \(intValue)")执行以上方法后得到了奇怪的结果:intvalue = Optional(5)其... [移动开发] Swift入门(三)——元组(Tuple)定义元组是一个包含了若干个相关联变量的对象。元组的创建var newTuple = ("kt",20) //由于Swift的类型推导,newTuple被推导为(String,Int)类型的变量元组的解绑几个变量一旦联合在一起,组成了一个元组,他们就被“绑定”了,要想从一个元组中单独取出某一个数据时,需要解绑元组。直接解绑直接解绑是最简单的一种解绑方式,只要定义若干个变量与元组中的变量一一对应即可。v... [移动开发] Swift入门(二)——字符与字符串Swift入门系列教程Swift字符Swift入门(一)——基本语法Swift入门(三)——元组(Tuple)定义Swift中的字符,与OC有些不同,每一个字符代表了一个可拓展的字母集,可拓展的字母集由若干个(大于等于一个)Unicode标量值表示,这些标量构成了一个可拓展的字母集,也就是一个人类可读的字符。Unicode标量一个Unicode标量占据21个比特位,一般格式为“U+xxxx”,这个解... [移动开发] Swift入门(一)——基本语法最近开始学习swift,把学习的过程和总结整理成一个系列,方便日后回顾总结。基本语法基础语法swift中每一行结束后不需要加分号,多个语句在同一行内需要用分好隔开 //表示注释,或者用/* ……*/常量常量是指定义之后无法修改值的量,比如设置一个最大尝试登陆的次数,它的值一旦被确定,就不应该在程序中被修改。swift中的常量用let表示,定义方法如下:let maxAttemptTime = 3... |
|