在 OC 中实现消息的转发

转发:http://www.kittenyang.com/forwardinvocation/ 我正在写一个自定义的 TableView 滚动条,可以实时显示当前 Cell 的编号,比原生的黑条更具可视性。 实现原理也很简单,KVO 监听 contentOffset 然后根...

2016-04-26 22:19:29

阅读数 282

评论数 0

苹果Xcode帮助文档阅读指南

Xcode文档的结构 如上图,打开后,整个文档界面有左面的侧栏和右面的内容区域构成。左面的侧栏可以选择不同的文档库。你的Xcode里面一般来说有一组不同版本的iOS文档库、一组不同版本的OS X文档库,以及一个Xcode文档库。 如果你这里没有你要查看的文档库,你可以选择X...

2016-04-25 23:40:42

阅读数 834

评论数 0

runloop 与autorelase对象、Autorelease Pool 在什么时候释放

iOS的运行时是由一个一个runloop组成的,每个runloop都会执行下图所示的一些步骤: 每个runloop中都创建一个Autorelease Pool,并在runloop的末尾进行释放, 所以,一般情况下,每个接受autorelease消息的对象,都会在下个runloop开始前被释...

2016-04-25 23:29:16

阅读数 1132

评论数 0

autorelease和autoreleasepool 注意事项优缺点

1. 在使用Dispatch Queue时, 虽然其Pool中每个thread都会有autoreleasepool,但是如果我们给的task每个都创建一些对象,并做autorelease,那若提交的task太多,比如有100000个,那在thread退出前,这些内存都无法释放,等于说有大量内存被占...

2016-04-25 23:13:27

阅读数 1279

评论数 0

@autoreleasepool 在什么时候使用

根据 Apple的文档 ,使用场景如下: 写基于命令行的的程序时,就是没有UI框架,如AppKit等Cocoa框架时。写循环,循环里面包含了大量临时创建的对象。(本文的例子)创建了新的线程。(非Cocoa程序创建线程时才需要) 长时间在后台运行的任务。 atureleasep...

2016-04-25 23:07:40

阅读数 1587

评论数 0

NSURLRequestCachePolicy 缓存的方式

1> NSURLRequestUseProtocolCachePolicy = 0, 默认的缓存策略, 如果缓存不存在,直接从服务端获取。如果缓存存在,会根据response中的Cache-Control字段判断下一步操作,如: Cache-Control字段为must-revalidata...

2016-04-25 17:09:39

阅读数 186

评论数 0

Mantle的优缺点

简要分析   先来简要分析一下各种构建model层方法的优点和缺点:   一、工具生成model   优点:   1、简单易用,新手也可以10秒上手   2、有一定的容错代码   3、代码生成相对工整和规范,部分工具还可以选择...

2016-04-20 23:46:20

阅读数 1002

评论数 0

Mantle 使用时与到问题

1. 当属性为weak时,默认设置为MTLModelEncodingBehaviorConditional,否则默认为MTLModelEncodingBehaviorUnconditional,设置完后,将其封装在NSNumber中并放入字典中。         MTLModelEncodi...

2016-04-20 23:44:17

阅读数 558

评论数 0

一个自定义服务以执行脚本实现类属性的快速整齐地排列

Note: 如果对于这些脚本命令还不熟悉,它们是相当好理解的。排序(sort)是按照字母顺序来的,`uniq`是会删除所有重复的行数。`uniq`在这里可能派不上用场,但是用它来管理`#import`,那是极好的。 Mac OS X允许你创建整个操作系统全局通用的服务,你将用它来创建一个用在...

2016-04-18 15:46:33

阅读数 264

评论数 0

Lldb篇2 chisel来提高调试效率

LLdb篇2教你使用faceBook的chisel来提高调试效率 首先如果使用lldb,最好你要学着使用chisel来提高效率,否则你会浪费很多的时间,除非你自己会写python脚本,自己封装一些lldb的命令。 安装chisel chisel的安装是十分简单,它是在终端通...

2016-04-12 14:30:13

阅读数 505

评论数 0

iOS调试技巧之LLDB

LLDB介绍 LLDB 是一个有着 REPL 的特性和 C++ ,Python 插件的开源调试器。LLDB 绑定在 Xcode 内部,存在于主窗口底部的控制台中。调试器允许你在程序运行的特定时暂停它,你可以查看变量的值,执行自定的指令,并且按照你所认为合适的步骤来操作程序的进展。 基础 这里...

2016-04-12 14:28:51

阅读数 238

评论数 0

关系型数据库和非关系型数据库区别

关系型数据库通过外键关联来建立表与表之间的关系,非关系型数据库通常指数据以对象的形式存储在数据库中,而对象之间的关系通过每个对象自身的属性来决定 比如 有一个学生的数据:     姓名:张三,性别:男,学号:12345,班级:二年级一班 还有一个班级的数据: ...

2016-04-08 22:29:18

阅读数 1174

评论数 0

nil、Nil、NULL和NSNull区别

前言 记得曾经有不少朋友问过笔者,在Objective-C中nil和Nil以及NULL的区别。最重要的是,在面试中还有不少朋友常会被问到。记得当年刚找工作的时候,笔者就被面试官问到过,现在笔者在这里统一详细说明。 NULL 对于学习过C/C++语言的朋友,对NULL一定很熟悉吧?...

2016-04-05 00:30:48

阅读数 2826

评论数 0

详解 CALayer 和 UIView 的区别和联系

在说到 UIView 和 CALayer 的区别和联系的时候,被喵神指出没有切中要点,所以这里就 CALayer 和 UIView 这个问题重新整理了下。这里会先分条解释,最后会在文章的结尾给出概括性总结。 1.首先UIView可以响应事件,Layer不可以. UIKit使用UIRes...

2016-04-05 00:24:35

阅读数 256

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭