iOS机制
jiangrenju
为梦醒而奋斗!
展开
-
iOS 多播委托(GCDMulticastDelegate)
转自:http://www.cnblogs.com/dagehaoshuang/p/4043264.html在IOS中为了实现回调一般有如下几个方法:delegate通知中心blockKVO(较特殊的回调,姑且也算一种)以上四种中在我自己的项目中比较常用的就是delegate和block了。在现实中回调的需求也分两种一对一的回调。一对多的回调。转载 2015-01-27 14:35:39 · 1951 阅读 · 0 评论 -
iOS中消息分发 objc_msgSend的作用
转自:http://book.51cto.com/art/201403/432144.htm第11条:理解objc_msgSend的作用在对象上调用方法是Objective-C中经常使用的功能。用Objective-C的术语来说,这叫做“传递消息”(pass a message)。消息有“名称”(name)或“选择子”(selector),可以接受参数,而且可能还有返回转载 2015-03-19 18:25:34 · 1172 阅读 · 0 评论 -
iOS调用方法---NSInvocation的使用
在 iOS中可以直接调用 某个对象的消息 方式有2种一种是performSelector:withObject:再一种就是NSInvocation, invocation英文单词就是调用的意思第一种方式比较简单,能完成简单的调用。但是对于>2个的参数或者有返回值的处理,那就需要做些额外工作才能搞定。那么在这种情况下,我们就可以使用NSInvocation来进行这些相对复转载 2015-01-23 15:37:43 · 947 阅读 · 0 评论 -
iOS Runtime能做什么?
转自Anselz的博客 转自:http://www.cocoachina.com/ios/20140527/8570.html在之前的文章中我们介绍了Runtime是什么,属于理论性介绍,你看了上篇很迫切的想知道Runtime到底能干什么?不要着急,这一篇Blog将将讲解Runtime怎么应用到实战中Runtime官方文档在这里,包括了接口名字以及使用说明。下文讲到的接口都转载 2015-01-23 16:52:39 · 1388 阅读 · 0 评论 -
iOS--关于RunLoop的一些总结
先从一个比较常见的问题入手: 5 NSTimer * timer = [NSTimer scheduledTimerWithTimeInterval:1 6 target:self 7 select转载 2015-02-09 11:39:50 · 754 阅读 · 0 评论 -
iOS反射机制--1.属性反射
iOS属性反射:说白了,就是将两个对象的所有属性,用动态的方式取出来,并根据属性名,自动绑值。(注意:对象的类,如果是派生类,就得靠其他方式来实现了,因为得到不该基类的属性。)本人常用的反射方式,有如下两种:从一个自定义实体类->自定义实体类从一个NSDictionary->自定义实体类(此方式最最常用,如网络Json数据会组成NSDictionary。sqlite查询数据,可以用转载 2015-01-20 09:54:32 · 1294 阅读 · 0 评论 -
OC--对象模型与运行时
转自:http://www.cocoachina.com/ios/20141218/10679.html0. Objective-C与C从Objective-C的名字上我们就能看出来它和C语言有着很密切的关系,是“面向对象的C语言”。Objective-C诞生于上世纪80年代,那个时候面向对象的理念已经得到了初步发展,C语言当时也已经是很成熟的语言。和C++类似,Objective转载 2014-12-31 15:04:42 · 668 阅读 · 0 评论 -
iOS反射---2.类方法的反射
1.NSObject常用方法:(类别判断, 也可以说是动态方法)[objc] view plaincopyStudent *stu = [[[Student alloc] init] autorelease]; // isKindOfClass判断对象是否属于某个类 或者 子类 if ( [stu isKindOfClass:转载 2015-01-20 10:06:46 · 1657 阅读 · 1 评论 -
从堆栈解析OC中的Block
转自:http://www.cocoachina.com/ios/20150109/10891.html1.相关概念在这篇笔记开始之前,我们需要对以下概念有所了解。1.1 操作系统中的栈和堆注:这里所说的堆和栈与数据结构中的堆和栈不是一回事。我们先来看看一个由C/C++/OBJC编译的程序占用内存分布的结构: 栈区(stack):由系统自转载 2015-01-12 17:42:40 · 2653 阅读 · 0 评论 -
Block编程值得注意的那些事儿
转自:深入浅出Cocoa]Block编程值得注意的那些事儿一系列地址:深入浅出Cocoa转自此大牛的博客, 理解了很多原理上的东西.一,前言在前文《深入浅出Cocoa多线程编程之block与dispatch quene》中我介绍了 block 的一些基本语法以及如何和 GCD 结合的使用示例。block 是在 iOS 4 中引入的新特性,它和 C++ 11 中的转载 2014-12-04 15:28:16 · 456 阅读 · 0 评论 -
objc语言的运行时处理
转自:http://www.cnblogs.com/xwang/p/3542515.html在Objective-C中,消息是通过objc_msgSend()这个runtime方法及相近的方法来实现的。这个方法需要一个target,selector,还有一些参数。理论上来说,编译器只是把消息分发变成objc_msgSend来执行。比如下面这两行代码是等价的。1 [array ins转载 2014-12-04 14:18:12 · 558 阅读 · 0 评论 -
如何更安全的使用Block
前段时间,在公司的项目中发现了内存泄露。查到最后发现是由于没有正确使用Block导致的内存引用循环。简单的解决方案就是补上关键字__weak。那么问题来了,为何[UIView animateWithDuration:animations:completion:]或者GCD中可以不需要声明__weak呢? 如何选择回调方式在讲这个问题之前,我们先看看Objcio上是怎么判断使转载 2015-01-27 12:52:30 · 506 阅读 · 0 评论 -
NSDictionary实现原理
转自:http://blog.csdn.net/linshaolie/article/details/41494303 NSDictionary(字典)是使用 hash表来实现key和value之间的映射和存储的, hash函数设计的好坏影响着数据的查找访问效率。数据在hash表中分布的越均匀,其访问效率越高。而在Objective-C中,通常都是利用NSString 来作为键转载 2017-02-23 17:55:41 · 6180 阅读 · 0 评论