iOS深入理解
孤VVV城
这个作者很懒,什么都没留下…
展开
-
iOS 对象模型
前面写了一点关于runtime的swizzling,其实也是对象模型的一部分,今天就来详细讲一下ios的对象模型。那么什么叫对象模型呢,按照面向对象的设计原则来说,所有的事物都是对象,(iOS还是允许存在一些基本的数据类型,所以并没有严格遵守面向对象),同时对象也应该是另一个对象生成的实例。比如一个类生成一个实例,这个实例就叫做这个类的对象,也叫实例对象,那么问题来了,类是不是也是对象呢?iO原创 2015-03-04 11:42:53 · 753 阅读 · 0 评论 -
iOS 监听程序的生命周期
当你想要对程序的不同状态进行操作时,就要对程序的生命周期进行了解,比如当你点击home键时或者程序意外退出事,需要保存现场VIew以及一些数据,应该在哪里进行操作,程序开启时启动界面,或者再次进入时直接验证登录,等等今天就来讲一下iOS的程序生命周期,在什么时候调什么方法。在Appdelegate中已经写好了各种监听程序状态的回调方法,所以只要了解那些方法在哪里调用就可以 了:- (B原创 2015-03-23 15:00:09 · 2002 阅读 · 0 评论 -
iOS之同步锁
iOS中的几种同步锁:1、OSSpinLock 自旋锁,性能最高的锁。原理很简单,就是一直 do while 忙等。它的缺点是当等待时会消耗大量 CPU 资源,所以它不适用于较长时间的任务。对于内存缓存的存取来说,它非常合适。2、dispatch_semaphore 是信号量,但当信号总量设为 1 时也可以当作锁来。在没有等待情况出现时,它的性能比 pthread_mutex 还要原创 2015-11-07 00:46:42 · 1219 阅读 · 0 评论 -
深入理解runloop
RunLoop 是 iOS 和 OSX 开发中非常基础的一个概念,这篇文章将从 CFRunLoop 的源码入手,介绍 RunLoop 的概念以及底层实现原理。之后会介绍一下在 iOS 中,苹果是如何利用 RunLoop 实现自动释放池、延迟回调、触摸事件、屏幕刷新等功能的。IndexRunLoop 的概念RunLoop 与线程的关系RunLoop 对外的接口RunLoop转载 2015-10-22 15:06:31 · 440 阅读 · 0 评论 -
封装测试一段代码的运行时间
封装测试一段代码的运行时间调用时非常方便,计算时间用了私有API在.m文件中#import "testTime.h"#import <objc/runtime.h>typedef void(^callback)(id result);//默认情况下,系统自带的IMP被定义为无参数无返回值的函数/*重新定义IMP,有参数,带返回值和不带返回值*/typedef void (*_VIMP) (i原创 2016-03-05 15:22:04 · 735 阅读 · 0 评论 -
执行一个函数的3个非主流方法:
先讲一下IMP函数入口://默认情况下,系统自带的IMP被定义为无参数无返回值的函数/*重新定义IMP,有参数,带返回值和不带返回值*/typedef void (*_VIMP) (id, SEL, ...);typedef id(*_IMP) (id, SEL, ...);void todoSomething(id yh_self, SEL name, ...){#pragma clan原创 2016-03-05 15:35:14 · 484 阅读 · 0 评论 -
self表示的是当前类开辟内存的对象(文档里写的是当前的消息接受者 Return Value: The receiver.)
答疑:当在子类中调用super跳到父类中执行self时,其self实际指向的是子类(比如self.或者[self doSomething]等),当在子类里找不到这个属性或者方法时,会到父类中去中,如果还找不到,就会执行消息转发,转发失败则crash(实例方法中的self,是对象首地址;类方法中的self,是class)self表示的是当前类开辟内存的对象(文档里写的是当前的原创 2016-03-05 15:51:57 · 509 阅读 · 0 评论 -
@property的默认属性
property 的关键字主要分为四类:原子性nonatomic,atomic 在默认情况下,由编译器合成的方法会通过锁定机制确保其原子性(atomicity)。如果属性具备nonatomic 特质,则不使用同步锁。请注意,尽管没有名为“atomic”的特质(如果某属性不具备nonatomic特质,那它就是“原子的” ( atomic ),但是仍然可以在属性特质中写明这一点,编译器不会报错。若原创 2016-03-05 16:00:05 · 4163 阅读 · 0 评论