Swift
鬼谷传人
喜欢火影,喜欢编程,喜欢与爱学者讨论知识,分享知识.
展开
-
swift -- 适配准备
//公共全局变量public var DEVICE_TYPE:Int=0 //0为iPhone4s及以下 1为iPhone5s及以下 2为iPhone6 3为iPhone6p及以上public var DEVICE_WIDTH:CGFloat=0 //设备宽度public var DEVICE_HIGHT:CGFloat=0 //设备高度public var FIT_RATE:CGFloat原创 2016-03-21 10:21:00 · 652 阅读 · 0 评论 -
关于一些不同寻常的tabBar的使用
在实际开发中,系统的原生控件并不能满足我们的需求,这个时候就需要自己去自定义这个控件,自定义控件需要自己对原生控件结构非常了解。今天,这里来讲一下不同寻常的tabBar。原则:尽量利用系统自带的TabBar.只改需要改的地方不同寻常的tabBar 类型一:这种基本上是重写了整个tabbar,然后根据自己的需求来定义view的风格 步骤: 1.把自带的TaBBar条给隐藏掉,添加自己的view l原创 2016-05-18 15:31:25 · 518 阅读 · 0 评论 -
图片压缩处理
import Foundationimport UIKitextension UIImage { //compress image to quality(0,1) class func compressImageToQuality(image:UIImage, quality:CGFloat) -> UIImage { if quality >= 1 || qual原创 2016-04-15 11:01:24 · 293 阅读 · 0 评论 -
swift - protocol
Protocol(协议)用于统一方法和属性的名称,而不实现任何功能。协议能够被类,枚举,结构体实现,满足协议要求的类,枚举,结构体被称为协议的遵循者。遵循者需要提供协议指定的成员,如属性,方法,操作符,下标等。这里只讲和oc 代理类似的那种一. 声明一个protocol : NSObjectProtocolprotocol GGTableViewControllerDelegate:NSObject原创 2016-03-15 12:41:59 · 413 阅读 · 0 评论 -
swift - map() 与flatMap()
map() 根据提供的映射关系,将数组转换成另外一个新数组,无需创建一个临时可变数组 let testArray = ["test1","test1234","test56"] //第一个参数表示原来数组的元素 ,返回类型为生成的新数组的元素类型 , 闭包里面为转换逻辑 let anotherArray = testArray.map { (string:String) -> I转载 2016-03-14 14:19:05 · 476 阅读 · 0 评论 -
swift - singleton
关于单例,有三个重要的准则需要牢记:单例必须是唯一的, 在程序生命周期中只能存在一个这样的实例。单例的存在使我们可以全局访问状态。为保证单例的唯一性,单例类的初始化方法必须是私有的。这样就可以避免其他对象通过单例类创建额外的实例。单例必须是线程安全的。如果有两个线程同时实例化一个单例对象,就可能会创建出两个单例对象。也就是说,必须保证单例的线程安全性,才可以保证其唯一性。通过调用dispatc原创 2016-03-14 10:52:25 · 330 阅读 · 0 评论 -
swift - lazy load
swift中懒加载必须使用var关键字来定义延迟加载的属性,不能使用let关键字,因为常量必须在实例构建时赋值。 懒加载常见格式: 后面通过等号赋值一个闭包,闭包后面必须跟上() , 如果闭包是用于懒加载,那么in 之前的代码都可以省略,包括 in 在内比如 lazy var array:[String] = { // () -> [String] in return ["a"原创 2016-03-14 09:35:21 · 1147 阅读 · 0 评论 -
swift - Property Observers
在oc世界里,我们为了给一个类的属性赋值时做一些处理操作,主要通过重写getter和setter方法,但是在swift世界里,是通过属性的willSet和didSet(属性监视器)来达到这个效果的willSet is called just before the value is stored.didSet is called immediately after the new value is s原创 2016-03-22 11:16:23 · 453 阅读 · 0 评论 -
swift - Designated Initializer & Convenience Initializers
Designated initializers tend to set all of the properties up and let the user send in values for each. A convenience initializer often has some of those hard coded, and thus can take less parametersTo原创 2016-03-22 10:35:06 · 802 阅读 · 0 评论 -
swift - DateUtil
class DateUtil: NSObject { class func dateFormatterStrByM(dateStr:String)->String{ let dateFormatter:NSDateFormatter=NSDateFormatter() dateFormatter.dateFormat="yyyy-MM-dd HH:mm:ss"原创 2016-03-22 09:01:43 · 808 阅读 · 0 评论 -
HTTP Status Code
具体参考:http://baike.baidu.com/link?url=lsOza-1zStV6R-0x1PMdlSqQRK_j-CE3kV_mf3G4f8HWQMfc_x5igKMOzSAvCcQ-_qPRYPe3v8HW-O4UMtrjTa// HTTPStatusCode.swiftimport Foundation/// HTTP Status Code (RFC 2616)pub原创 2016-06-21 15:42:12 · 756 阅读 · 0 评论