- 闭包的定义 1.提前准备好的代码        2.在需要的时候执行        3.可以当做参数传递 // 1.最简单的闭包 // () -> () 没有参数,没有返回值的函数 // 如果没有参数,没有返回值,可以省略,连 in 一起省略 let b1 = { print("---- b1 ----") } // 执行闭包 b1() // 2.带参数的闭包 // (Int) -> () // 闭包中,参数.返回值.实现代码,都是写在 {} 中 // 需要使用一个关键…
在swift中的闭包等同于OC中的block,它的用途就是在于可以包装一段代码在必要的时候进行调用. 闭包定义:  {(类型列表) -> 返回值 in // 多条swift语句 // 执行代码  insert coding } 实际创建闭包代码如下: var square = {(value1 value1:Int,value2 value2:Int)->Int in // 代码块 if value1>value2{ return value1 } return value2 } 注释:…
Swift中的异常处理 OC中的异常处理:方法的参数要求传入一个error指针地址,方法执行完后,如果有错误,内部会给error赋值 Swift中的异常处理:有throws的方法,就要try起来,然后do {}catch {do中出现错误异常才执行这里的代码}进行处理 格式: do { try 有throws的方法 } catch { } Swift中异常处理的三种方式 try : 正常处理,必须用到do {} catch {} try! : 告诉系统一定没有异常,也就是说不用do catch来…
更新说明: Swift 目前已经发布到4.0版本了,以前写的这整个Swift学习系列的文章,有很多的不足之处,我会重新整理整个系列文章,也是相当于重新复习一遍Swift,后面系列文章的改动之处全都会做记号标注,希望能有不一样的收获,也希望能给也在学Swift的你一点点的帮助! 2017年9月1日 公司项目现在暂时还是在使用Object-C在写,Swift虽然面世不是很久,但Swift是苹果更推荐使用的开发语言,估计也是未来开发的趋势,自己以前有接触Swift,但又由于公司的项目赶,也没有时间去好…
OC中并发编程的相关API和面临的挑战(1) 小引 http://www.objc.io/站点主要以杂志的形式,深入挖掘在OC中的最佳编程实践和高级技术,每个月探讨一个主题,每个主题都会有几篇相关的文章出炉,2013年7月份的主题是并发编程,今天挑选其中的第2篇文章(Concurrent Programming: APIs and Challenges)进行翻译,与大家分享一下主要内容.由于内容比较多,我将分两部分翻译(API和难点)完成,翻译中,如有错误,还请指正.   目录 1.介绍 2.O…
一.介绍 开发者对匿名函数应该很清楚,其实它就是一个没有名字的函数或者方法,给人直观的感觉就是只能看到参数和返回值.在iOS开发中中,它又有自己的称呼,在OC中叫Block代码块,在Swift中叫闭包(Closure)函数.在我个人看来,两者并没有什么太大不同,定义和实现方式差不多,只不过是名称不一样罢了.由于开发用的比较多,所以我就针对OC和Swift分别写一下他们的传值方式,加深印象. 二.需求 定义两个控制器分别为FirstViewController和SecondViewControll…
首先我们先创造一个循环引用 var nameB:(()->())? override func viewDidLoad() { super.viewDidLoad() let bu = UIButton(type: .ContactAdd) bu.addTarget(self, action: "tap", forControlEvents: .TouchUpInside) view.addSubview(bu) run { print("name") sel…
1. Swift与oc混编译具体怎么实现,这儿我就不重复讲出了,网上有大把的人讲解. 2. 在swift与OC混编的编译环境下, oc类不能访问swift创建类中的代理? 解决方法如下: 在代理的头部加上 @objc(代理名字),这样就在外部就可以访问了,如下图. 然后就和oc中的代理一样,写上协议方法,就可以进行你想要的操作了. 3. swift中的回调方法介绍: 1. 通过代理 ,写法大家可以看上面的两张图片,和oc代理差不多. 2. 通过闭包来实现oc中代码块(Block)的方法,来进行代…
一.介绍 随着Swift的逐渐成熟,使用swift开发或者混合开发已经成为了一个趋势,本身苹果公司也十分推荐使用Swift这门新语言.目前Swift已经更新到了3.0,估计没有多久4.0就要出来了.那么再用Swift开发时遇到一些问题不可避免,下面就来解决几个常遇到的问题. 二.问题和解决办法 如何在Swift中手动桥接OC? 1.创建swift桥接文件   2.设置桥接文件路径,也即Objective-C Bridging Header的路径,设置完就可以导入自定义的OC类文件使用了 如何使用…
在oc中为了增强已有类的功能,我们经常使用分类.使用分类,我们可以在不破坏原有类的结构的前提下,对原有类进行模块化的扩展. 但是在swift中没有分类这种写法了.相对应的是swift中只有扩展(Extensions). 下面是swift中扩展(Extensions)的说明 扩展就是向一个已有的类.结构体.枚举类型或者协议类型添加新功能(functionality).这包括在没有权限获取原始源代码的情况下扩展类型的能力(即逆向建模).扩展和 Objective-C 中的分类(categories)…