1.UIButton的EdgeInsets UIButton的EdgeInsets方法,是用来设置title和image对于上左下右四个方向的偏移,但是很奇怪的是,刚开始只有Image,titile也设置了结果没显示出来,问题出现的很奇怪,也没找到什么原因,代码也没有错,莫名其妙的,换了一个图试了试,果然就好了:最后网上也找了原因,没有说明的,只是说这种现象的出现是因为"Button的width > titleLabel的width + image的width(图片原大小)" ,…
swift中的t正则表达式 正则表达式是对字符串操作的一种逻辑公式,用事先定义好的一些特定字符.及这些特定字符的组合,组成一个"规则字符串",这个"规则字符串"用来表达对字符串的一种过滤逻辑. 正则表达式的用处: 判断给定的字符串是否符合某一种规则(专门用于操作字符串) 电话号码,电子邮箱,URL... 可以直接百度别人写好的正则 别人真的写好了,而且测试过了,我们可以直接用 要写出没有漏洞正则判断,需要大量的测试,通常最终结果非常负责 过滤筛选字符串,网络爬虫 替…
截取字符串在Swift中相比OC要复杂很多,主要原因可能还是OC的NSRange的创建方法中参数类型为int,而Swift却对类型要求很严格,int不能作为参数创建Range,这要使用String中的startIndex和endIndex,但问题又出来了,如果要有灵活的范围呢?在之前可以直接就用advance函数,现在的Swift没有这个函数了,要用到advancedBy和distanceTo. 以下代码是对于Range和advancedBy函数的使用: //截取子串 let str = "He…
swift中常用关键字 **用作声明的关键字: ** class.deinit.enum.extension.func.import.init.let.protocol.static.struct.subscript.typealias.var 用作语句的关键字 break.case.continue.default.do.else.fallthrough.if.in.for.return.switch.where.while 用作表达和类型的关键字: as.dynamicType.new.is…
项目名称:HandyJSON 项目地址:https://github.com/alibaba/handyjson 背景 JSON是移动端开发常用的应用层数据交换协议.最常见的场景便是,客户端向服务端发起网络请求,服务端返回JSON文本,然后客户端解析这个JSON文本,再把对应数据展现到页面上. 但在编程的时候,处理JSON是一件麻烦事.在不引入任何轮子的情况下,我们通常需要先把JSON转为Dictionary,然后还要记住每个数据对应的Key,用这个Key在Dictionary中取出对应的Val…
原文出处:Understanding Optionals in Swift 苹果新的Swift编程语言带来了一些新的技巧,能使软件开发比以往更方便.更安全.然而,一个很有力的特性Optional,在你第一次使用时可能会感到困惑.Optionals将会在编译阶段检查哪些值为nil.通过这种方式,你可以更好的保证应用程序交付在用户手里是可运行的.在Swift中,Optionals也提供了一些接口用来和遗留的Objective-C代码之间交互. 初试Optional 让我们在XCode中新建一个叫做s…
以下关键字关于引用传参.属性.修改成员变量.静态变量.索引和构造函数重载 读过The Swift Programming Language的人都能看得出,我上面的这几个说法全不是apple的习惯用语.之所以这么起题目是因为很多最近转到swift下,但原本又不是搞ios开发的人,并不习惯apple的说法.他们经常在查询他人博客的时候因为某些名词的表示方式不同,而把原本简单的问题搞得一头雾水.就像我在刚接触oc的时候,很奇怪message和protocol的说法一样,因为我的mother  prog…
一.介绍 开发者对匿名函数应该很清楚,其实它就是一个没有名字的函数或者方法,给人直观的感觉就是只能看到参数和返回值.在iOS开发中中,它又有自己的称呼,在OC中叫Block代码块,在Swift中叫闭包(Closure)函数.在我个人看来,两者并没有什么太大不同,定义和实现方式差不多,只不过是名称不一样罢了.由于开发用的比较多,所以我就针对OC和Swift分别写一下他们的传值方式,加深印象. 二.需求 定义两个控制器分别为FirstViewController和SecondViewControll…
swift中第三方网络请求库Alamofire的安装与使用 Alamofire是swift中一个比较流行的网络请求库:https://github.com/Alamofire/Alamofire.下面我们就介绍一个这个库的安装与使用. 一.安装包管理工具CocoaPods 由于国内容易被墙,速度也非常的慢,这里我们使用提供的源 http://ruby.taobao.org/ gem sources --remove https://rubygems.org/ gem sources –a htt…
什么时候用通知,什么时候用代理,什么时候用block 通知 : 两者关系层次太深,八竿子打不着的那种最适合用通知.因为层级结构深了,用代理要一层一层往下传递,代码结构就复杂了 代理 : 父子关系,监听的方法较多的时候使用 block : 父子关系,监听的方法较少的时候使用 Swift中的代理 swift中代理的实现 定义swift中代理的协议 // swift 中的代理必须继承自NSObjectProtocol protocol VisitorViewDelegate : NSObjectPro…