自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

KT的iOS开发小站

记录点滴成长~

  • 博客(12)
  • 资源 (4)

原创 Swift入门(十二)——利用Extension添加逆序输出字符串方法

Swift好像没有自带逆序输出字符串的方法,于是决定通过拓展(Extension)给String类添加一个逆序输出字符串的reverse方法。首先新建一个Swift文件,命名规则不太清楚,于是暂且模仿OC叫做String+Operation吧,然后实现我们需要拓展的方法。下面先贴上代码,然后解释一下这段代码。//String+Operation.swifftimport Foundation//逆

2015-08-30 23:58:53 2680 1

原创 Swift入门(十一)——类型转换与is、as操作

三种操作:is、as?和as!Swift是强类型语言,但也允许开发者通过is、as?和as!这三种操作来对类型进行判断和强制转换。其中is用作类型判断,而as?和as!则分别是类型转换的可选形式和强制形式。在这里强调一下,swift中比较常用的向下转换(downcast)是没有as操作符的。为了方便后面的解释,这里假设定义了三个类,Fruit、Apple和Orange,其中Apple和Orange都

2015-08-29 00:45:02 3198 1

原创 彻底搞懂OC中GCD导致死锁的原因和解决方案

GCD提供了功能强大的任务和队列控制功能,相比于NSOperationQueue更加底层,因此如果不注意也会导致死锁。所谓死锁,通常指有两个线程A和B都卡住了,并等待对方完成某些操作。A不能完成是因为它在等待B完成。但B也不能完成,因为它在等待A完成。于是大家都完不成,就导致了死锁(DeadLock)。有一定GCD使用经验的新手通常认为,死锁是很高端的操作系统层面的问题,离我很远,一般不会遇上。其实

2015-08-27 23:56:26 17242 6

原创 Swift入门(十)——循环引用、弱引用和无主引用

最近看到swift里面不仅有循环引用和弱引用(weak),还添加了无主引用(unowned),于是写了一些demo,这里总结一下。和OC一样,Swfit默认也是基于ARC进行内存管理的,因此虽然简单,但如果不注意任然会出现循环引用问题(Retain cycle),导致内存泄露。在OC中,可以很简单的举出一个循环引用的例子。比如有两个类A和B,A中有一个属性是B类的实例,而B中又有一个属性是A类的实例

2015-08-23 00:12:34 6554

原创 Xcode6下iOS单元测试——XCTest和GHUnit框架简介和比较

iOS单元测试(UnitTest)在iOS中进行测试可以选择XCTest和GHUnit测试两种框架。XCTest集成在Xcode中,而GHUnit则是一个著名的开源框架。所谓的单元测试,就是指把程序分割成若干个小单元,对每个小单元单独进行测试。所谓的小单元,可以是一个方法,一个UI控件,一次简单的事件等等。本文不重点讨论测试的意义,所以就选择最简单的加法函数,介绍iOS如何进行单元测试。XCTest

2015-08-21 01:15:25 3012

原创 Swift入门(九)——String与Int、Double、Float等数字相互转换

三种转换模式任何语言里面,Int、float、double等数字类型自成一派,但它们和String类型之间的转换总是不太方便,这里总结一下它们相互转换的方法。总结下来一共有三种转换模式,分别举例说明。一、String转数字这里以String类型转Int类型为例。String转其他的数字类型(Float、Double等)大同小异。主要用到的方法是String类型的toInt方法。注意这个方法返回的是I

2015-08-14 00:20:43 61543 3

原创 实习小结——UIBarButtonItem和UINavigationBar的坑

这一周做了很多UI方面的东西,遇到的坑主要集中在UIBarButtonItem和UINavigationBar,记录一下备查。UIBarButtonItem自定义位置直接用系统默认的方式生成按钮是无法选择位置的,甚至连这个按钮的默认位置都不清楚。如果想要自定义按钮的位置,有两种选择。一、直接修改系统生成的按钮。可以通过UIBarButtonItem的imageInsets属性,修改图片的位置,从而间

2015-08-09 11:17:18 3007 1

原创 Swift在for循环中报错'++' is not a binary operator

最近刚开始学swift,遇到了一个非常诡异的问题。是在写for循环的时候出现语法错误。代码如下:for var i = 0; i < 10; i++{ println("hello world") }按理说这是Swift里最简单的for循环的使用了。但是编译器还是报了两个错:‘++ is not a binary operator’Operator is not a known bina

2015-08-08 23:27:19 3552

原创 Swift入门(八)——功能强大的求余运算符

求余运算符在大部分语言中,%都是求余运算符。其功能非常简单,不过也只支持int类型正数之间的求余。 比如 10 % 3 = 1。严格来说,正整数之间的求余的定义如下: 对于任意a,b∈N*,定义m = a % b,其中m满足: a = b * m + r且0 <= r < bSwift中的求余使用场景拓展Swift中的求余,不再是两个int类型正数之间的运算符了。不仅负数可以求余,浮点数

2015-08-06 00:12:12 5041

原创 Swift入门(七)——结构体(Struct)

引子之前我们在用Int,String等类型的时候,可能没有仔细研究过,其实这些基本类型与C或者Java不一样,不是严格的“基本类型”,他们其实是经过封装的结构体。按住Alt键点击Int类型后,可以看到Int结构体的完整定义/// A 64-bit signed integer value/// type.struct Int : SignedIntegerType { var value

2015-08-03 23:58:14 5589

原创 Swift入门(六)——字典(Dictionary)

字典的定义和上一篇文章讲到的数组类似,字典也是用来存放相同数据类型的元素的数据结构。不过字典是通过键(Key)来查找特定的值(Value),字典中存放的每一个数据项(item)都是这样的一个键值对。哈希化每一个键值对的值,没有特殊要求,但是只有可以哈希化的类型的变量,才可以作为键值对的键。可以哈希化是指,该类型的变量,必须提供一个可以计算出自身哈希值的方法。哈希值不相同的变量,自身一定也不相同,反之

2015-08-02 16:18:46 4348

原创 Swift入门(五)——数组(Array)

集合集合的定义Swift中提供了两种数据结构用于存放数据的集合,分别是数组(Array)和字典(Dictionary)。他们的主要区别在于数组中的元素由下标确定,而字典中的数据的值由数据的键(Key)决定。以下我们认为集合就是数组或字典。集合的可变性我们可以定义一个集合常量或者集合变量。一旦定义为常量,就意味着集合的长度、内容和顺序都不能再修改了。比如,定义为常量的数组,不能再向其中添加新的元素。数

2015-08-01 21:59:39 4502

Reveal 1.6.2破解版

iOSUI调试利器,最新版,完美破解,新版对autolayout支持的更好,支持显示ViewController,适配iOS9,支持多屏显示,运行创建屏幕快照并分享

2015-11-19

CoreData数据验证

通过一段具体的代码演示了CoreData如何验证输入数据是否满足要求

2015-06-22

Core Data数据验证

这一段代码具体实现了如何验证输入数据的合法性。

2015-06-22

Core Data多线程操作

通过一个工程,具体演示了如何在多线程环境下,实现简单的Core Data操作

2015-06-22

空空如也

空空如也
提示
确定要删除当前文章?
取消 删除