Farlanki.

Farlanki.

frame,bounds和center
参考:http://stackoverflow.com/questions/5361369/uiview-frame-bounds-and-center UIView中有两个和位置相关的属性,一个为frame,另一个为bounds. frame官方文档中是这样描述frame的: 1The view’s frame rectangle, which defines its position and size in its superview’s coordinate system. 意思就是frame是指view在superview的坐标系统中的position和size. bounds官...
学习Core Data
简介Core Data 是一种持久化技术,它能够将模型对象的状态持久化到磁盘. Core Data的简单示例使用Core Data的基本流程是: 创建Entity,指定其名称 为Entity添加Attributes,指定其名称和数据类型. 储存managed object. 取得managed object. 1234567891011121314151617181920//储存person let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate ...
NSOperation和NSOperationQueue
简介NSOperation和NSOperationQueue是GCD的封装.NSOperation和NSOperationQueue对应的分别是GCD中的任务和队列. 特性对比GCD,NSOperation提供了一些新的特性,例如取消队列中的任务,这在一些场景下将会大大减少cpu的运算量.试想一下你要实现一个下载大量图片并在UICollectionView中展示的应用,一般情况下是当用户滑动UICollectionView到达了一定地方的时候,新的图片将会被下载以填充即将要展示的view.那么当用户快速滑过UIConnectionView的时候,很多view已经被滑出屏幕但是加载当中的图...
map,reduce和filter
Mapmap方法的功能是:对数组中的每个元素调用指定的方法,生成一个新的数组并返回.例如,如果一个数组是[1,2,3,4,5,6,7,8,9]并且该指定的方法是f(x)=x^2,那么map()方法完成的功能如下: Reducereduce方法的效果是reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)就是说先把一个数组的第一,第二个元素作为参数,调用f()方法,把返回值和数组的第三个元素再调用f()方法,一直进行到数组的最后一个元素为止.最后返回一个值. Filterfilter方法用于过滤数组,遍历数组元素,把元素作为参数传入判断...
Pitaya
简介 Pitaya是一个基于NSURLSession开源的适合大文件上传的HTTP请求库.十分小巧. PitayaManager简介PitayaManager负责 构造 NSURLRequest 确定 URL 确定 HTTP 方法(GET、POST 等) 添加特定的 HTTP 头 填充 HTTP Body 2.驱动 session.dataTaskWithRequest 方法,开始请求 实现multipart/form-data请求为什么这个库适合大文件的上传呢,原因就在PitayaManager的buildBody()和 buildHeader()方法中.在buildHeade...
Objective-C中的@property和@ synthesize
@property@property在Objective-C中的作用是生成存取方法.当存取方法被生成后,就可以使用形如 实例名.属性名这种格式来访问实例变量.虽然这种方式和C++的访问对象成员的形式很像,但是在ObjC中的这种方法其实是调用了实例的存取方法而已.所以 1myCar.type = "SUV"; 这种写法其实是与 1[myCar setType:@"SUV"]; 等价. @synthesize@synthesize是将存取方法和变量关联起来. 如果写入这样的代码: 1@synthesize type = _type 那么就是将实例变量_type和存取方法关联起来.我们可...
‘使用ReplayKit’
Replaykit简介iOS9新增了ReplayKit,它能够给应用增加视频录制,保存以及分享的功能。 使用 开始录制: 123456let recorder = RPScreenRecorder.sharedRecorder() recorder.startRecordingWithMicrophoneEnabled(true) { [unowned self](error) -> Void in if let unwrappedError = error { print(unwrappedE...
命令模式
命令模式简介命令模式提供了一个对被调用方法的详情进行封装,以达到推迟调用或者可供不同元素调用的机制.使用命令模式的优点是1.可以执行撤销操作2.可以创造宏. 实现123456789101112131415161718192021222324252627282930313233343536373839404142434445464748protocol Command { func execute();}class GenericCommand<T> : Command { private var receiver: T; pri...
对象池模式
#对象池# 对象池对象池设计模式是单例模式的一种演变.与单例模式的访问一个对象不同,对象池模式提供访问多个对象的方法.对象池模式在要在多个类似对象中取得一个对象的情况下比较常用. 过程 初始化.被管理的对象集合在这步准备好. checkout.需要对象的元素从池中借走一个对象. 使用对象.这步不需要池的任何动作.被使用的对象不能被其他元素借走. check-in.元素归还借走的对象. 策略对象创建策略对象池中的对象可以一次性创建,也可以在被需要时再创建,成为惰性创建.一次性创建使得初始化对象的代价在他们被需求之前就已经显现.而惰性创建可以让创建对象的花销较小. 对象复用策略最简单的方...
‘Swift中的浅复制和深复制’
浅复制和深复制浅复制浅复制是指在复制的时候,对象里的值类型被复制一份,而引用类型没有被复制,指向原来的对象. 深复制深复制是指在复制的时候,对象里的值类型被复制一份,而引用类型也被复制一份. swift中的浅复制和深复制的情况在swift中,一个对象直接用等号赋值给另一个对象,则建立了两个指向同一个实例的引用.这种情况既不是浅复制也不是深复制.swift中的结构体,数组是浅复制的.(当然,也可以自己实现一个深复制的方法). 要建立复制,要实现NSCopying协议和实现其中的copyWithZone:方法 12345678910111213141516171819202122232425...
avatar
Farlanki
一个多头
FRIENDS