![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
iOS_OC
文章平均质量分 89
jeffasd
这个作者很懒,什么都没留下…
展开
-
KVC(key value coding)/ KVO(key value observing)
http://www.cnblogs.com/yyh123/p/3337892.htmlKVC,它是一种间接更改对象状态的方式,其实现方法是使用字符串来描述对象需要更改的属性。KVC中的基本调用包括valueForKey:和setValue:ForKey:,以字符串的形式向对象发送消息这里以Student和Card为例子valueForKey: 使用valueForKey:获取转载 2016-03-30 15:07:32 · 285 阅读 · 0 评论 -
MMDrawerController使不需要的页面不滑动
http://www.cocoachina.com/bbs/read.php?tid=263062MMDrawerController使不需要的页面不滑动 使用MMDrawerController来实现菜单滑动效果。已经实现的部分是 每个一级页面是可以滑动的,二级页面是不允许滑动的。但是出现了一个问题,就是当一级页面不进行转载 2016-03-30 17:07:35 · 986 阅读 · 0 评论 -
iOS开发RunTime之函数调用
http://www.2cto.com/kf/201411/348580.html1.Objective-C中的函数调用对于C语言,函数调用是由编译器直接转化完成的,在编译时程序就开始查找要执行的函数(C语言函数调用原理)。而在OC中,我们将函数调用称为消息发送。在编译时程序不查找要执行的函数,必须等到真正运行时,程序才查找要执行的函数。例子:在C语言中,仅转载 2016-04-06 10:57:08 · 604 阅读 · 1 评论 -
iOS 如何查看一段代码运行的时间
http://www.jianshu.com/p/221507eb8590?utm_source=open-open ios开发的一些小技巧篇一1.如何快速的查看一段代码的执行时间。#define TICK NSDate *startTime = [NSDate date]#define TOCK NSLog(@"Time: %f", -[startTime time转载 2016-04-06 11:02:40 · 7630 阅读 · 0 评论 -
[iOS]在运行时为类添加方法
http://longtimenoc.com/archives/ios%E5%9C%A8%E8%BF%90%E8%A1%8C%E6%97%B6%E4%B8%BA%E7%B1%BB%E6%B7%BB%E5%8A%A0%E6%96%B9%E6%B3%95Obj-C用起来真是各种happy,比如现在有这样一种情况:有一个类,我们希望它能响应一个消息(message),但是这个类没有相应的转载 2016-04-06 14:07:39 · 769 阅读 · 0 评论 -
第11条:理解objc_msgSend的作用
http://book.51cto.com/art/201403/432144.htm第11条:理解objc_msgSend的作用在对象上调用方法是Objective-C中经常使用的功能。用Objective-C的术语来说,这叫做“传递消息”(pass a message)。消息有“名称”(name)或“选择子”(selector),可以接受参数,而且可能还有返回值。转载 2016-04-06 14:11:41 · 342 阅读 · 0 评论 -
第12条:理解消息转发机制(1)
http://book.51cto.com/art/201403/432146.htm第12条:理解消息转发机制(1)第11条讲解了对象的消息传递机制,并强调了其重要性。第12条则要讲解另外一个重要的问题,就是对象在收到无法解读的消息之后会发生什么情况。若想令类能理解某条消息,我们必须以程序码实现出对应的方法才行。但是,在编译期向类发送了其无法解读的消息并不会报错,转载 2016-04-06 14:12:47 · 354 阅读 · 0 评论 -
第12条:理解消息转发机制(2)
http://book.51cto.com/art/201403/432147.htm第12条:理解消息转发机制(2)完整的消息转发如果转发算法已经来到这一步的话,那么唯一能做的就是启用完整的消息转发机制了。首先创建NSInvocation对象,把与尚未处理的那条消息有关的全部细节都封于其中。此对象包含选择子、目标(target)及参数。在触发NSInvocatio转载 2016-04-06 14:13:46 · 327 阅读 · 0 评论 -
Objective-C Runtime分析(三)-objc_msgSend
http://www.tekuba.net/program/338/本系列主要参考资料:Objective-C Runtime ReferenceObjective-C Runtime Programming Guide涉及主要文件:objc/message.h,objc/objc-api.h,objc/objc.h,objc/runtime.h特酷吧[te转载 2016-04-06 14:29:08 · 360 阅读 · 0 评论 -
iOS runTime 机制详解
//// ViewController.m// test_CAdisplay_01//// Created by admin on 4/6/16.// Copyright © 2016 jeffasd. All rights reserved.//#import "ViewController.h"#import #define TICK NSDate原创 2016-04-06 14:31:44 · 419 阅读 · 0 评论 -
关于performSelector 和 respondsToSelector 调用和直接调用区别
http://blog.csdn.net/thanklife/article/details/45886995关于performSelector调用和直接调用区别 下面两段代码都在主线程中运行,我们在看别人代码时会发现有时会直接调用,有时会利用performSelector调用,今天看到有人在问这个问题,我便做一下总结,[delegate imageDownload转载 2016-03-24 17:51:40 · 1490 阅读 · 0 评论 -
读写 .plist 文件的代码例子
http://blog.csdn.net/niitlcj/article/details/7437731通过读写 .plist 文件,我们可以在 iPhone 里记录或调取数据,下面就是 CocoaChina 会员“pjk1129” 分享的读写 .plist 文件的代码以name,phoneNumber,age三个字段为例。 iPhone在文本框中输入数据,获取后装入数组中转载 2016-03-24 22:45:27 · 298 阅读 · 0 评论 -
NSString 和 NSArray相互转化用componentsJoinedByString和componentsSeparatedByString
http://www.ithao123.cn/content-8230546.htmlNSString 和 NSArray相互转化用componentsJoinedByString和componentsSeparatedByString[摘要:将array数组转换为string字符串 NSString *tempString = [mutableArray comp转载 2016-03-25 10:12:43 · 5342 阅读 · 0 评论 -
ios开发之你真的了解了KVC吗?
http://www.tuicool.com/articles/2aYfy2之前一直以为自己了解KVC 其实只是井底之蛙啦,真正的要把KVC原原本本的说出来还真的不是一件简单的事情。于是今天写下这边文章,告诫自己要知其然还要知其所以然。 一.KVC的基本概念Key-value coding,它是一种使用字符串标识符,间接访问对象属性的机制,而不是直接转载 2016-04-07 11:37:43 · 320 阅读 · 0 评论 -
iOS开发之----KVC的使用
http://blog.sina.com.cn/s/blog_71715bf8010166up.html除了一般的赋值和取值的方法,我们还可以用Key-Value-Coding(KVC)键值编码来访问你要存取的类的属性。下图来自苹果官网:如何使用KVC存取对象属性呢?看个示例1、使用KVC定义一个Student类,继承于NSObj转载 2016-04-07 11:38:29 · 454 阅读 · 0 评论 -
iOS 高级开发 KVC(一),ios开发kvc
http://www.bkjia.com/IOSjc/989396.html熟练使用KVC 可以再开发过程中可以给我们带来巨大的好处,尤其是在json 转模型的时候,KVC让程序员摆脱了繁琐无营养的代码堆积。减少代码量就是减少出错的概率。KVC 用起来很灵活,这种灵活的基础是严格的命名要求。这种命名要求其实是一种约定。再程序的世界里,约定的作用远远大于开发本身,良好的约定可以使程序转载 2016-04-07 11:39:27 · 287 阅读 · 0 评论 -
iOS KVC & KVO
http://www.cocoachina.com/industry/20140224/7866.htmlKey Value CodingKey Value Coding是cocoa的一个标准组成部分,它能让我们可以通过name(key)的方式访问property, 不必调用明确的property accssor, 如我们有个property叫做foo, 我们可以foo直接转载 2016-04-07 11:40:55 · 253 阅读 · 0 评论 -
[深入浅出Cocoa]详解键值观察(KVO)及其实现机理
http://blog.csdn.net/kesalin/article/details/8194240 [深入浅出Cocoa]详解键值观察(KVO)及其实现机理罗朝辉 (http://blog.csdn.net/kesalin/)本文遵循“署名-非商业用途-保持一致”创作公用协议一,前言Objective-C 中的键(key)-值(value)转载 2016-04-07 11:43:50 · 472 阅读 · 0 评论 -
ios-kvc\kvo 原理
http://blog.chinaunix.net/uid-20406995-id-4159572.htmlKVC(Key-value coding)键值编码,类似于map,提供了一种使用字符串而不是访问器方法去访问一个对象实例变量的机制。 KVO(Key-value observing)键值观察,提供了一种当其它对象属性被修改的时候能通知当前对象的转载 2016-04-07 11:44:23 · 443 阅读 · 0 评论 -
iOS KVC 和 KVO 详解
http://objccn.io/issue-7-3/Key-value coding (KVC) 和 key-value observing (KVO) 是两种能让我们驾驭 Objective-C 动态特性并简化代码的机制。在这篇文章里,我们将接触一些如何利用这些特性的例子。观察 model 对象的变化在 Cocoa 的模型-视图-控制器 (Model-view-转载 2016-04-07 11:45:10 · 412 阅读 · 0 评论 -
iPhone程序开发 KVO/KVC实现机理分析
http://mobile.51cto.com/iphone-278413.htmiPhone程序开发 KVO/KVC实现机理分析是本文要介绍的内容,不多说,直接进入话题。我们来看详细内容。Objective-C里面的Key-Value Observing (KVO)机制,非常不错,可以很好的减少浇水代码。关于KVO的学习,可以参考文章:《Key-Value Observi转载 2016-04-07 13:42:20 · 294 阅读 · 0 评论 -
iOS OC KVC KVO 实现原理详解
本文参考了如下文章:http://mobile.51cto.com/iphone-278413.htmhttp://blog.csdn.net/kesalin/article/details/8194240有些时候在使用OC的kvc,kvo时我们最好要搞清楚其内部的实现原理,这样比较好Key-Value Coding(KVC)实现原理分析KVC运用了一个is原创 2016-04-07 13:46:25 · 2433 阅读 · 0 评论 -
细说OC中的load和initialize方法
http://ios.jobbole.com/84088/OC中有两个特殊的类方法,分别是load和initialize。本文总结一下这两个方法的区别于联系、使用场景和注意事项。Demo可以在我的Github上找到——load和initialize,如果觉得有帮助还望点个star以示支持,总结在文章末尾。load顾名思义,load方法在这个文件被程序装载时调用。只要转载 2016-04-07 14:18:51 · 303 阅读 · 0 评论 -
iOS KVC KVO 代码 详解
//// ViewController.m// test_kvo_kvc_01//// Created by admin on 4/7/16.// Copyright © 2016 jeffasd. All rights reserved.//#import "ViewController.h"#import "Persion.h"//#import static原创 2016-04-07 15:09:45 · 462 阅读 · 0 评论 -
category使用 objc_setAssociatedObject/objc_getAssociatedObject 实现添加属性
http://www.cnblogs.com/tangbinblog/p/3944316.htmlcategory使用 objc_setAssociatedObject/objc_getAssociatedObject 实现添加属性属性 其实就是get/set 方法。我们可以使用 objc_setAssociatedObject/objc_getAssocia转载 2016-03-25 19:03:32 · 402 阅读 · 0 评论 -
iOS开发之---static关键词详解
1、静态变量 static什么是静态变量:从面向对象的角度触发,当需要一个数据对象为整类而非某个对象服务,同时有力求不破坏类的封装性,既要求此成员隐藏在类的内部,有要求对外不可见的时候,就可以使用static。 静态变量的优点:1、节省内存。静态变量只存储一处,但供所有对象使用。 2、它的值是可以更新的。 3、可提高时间效率。只要某个对象对静态变量更新一次,所有的对转载 2016-04-12 12:07:08 · 867 阅读 · 0 评论 -
NSString属性什么时候用copy,什么时候用strong?
http://www.cocoachina.com/ios/20150512/11805.html我们在声明一个NSString属性时,对于其内存相关特性,通常有两种选择(基于ARC环境):strong与copy。那这两者有什么区别呢?什么时候该用strong,什么时候该用copy呢?让我们先来看个例子。示例我们定义一个类,并为其声明两个字符串属性,如下所示:转载 2016-04-08 15:16:33 · 352 阅读 · 0 评论 -
NSFileManager 使用 详解
将NSString转成NSURL的API是fileURLWithPath,从NSURL转成NSString的API是path NSString *fileString = [[NSBundlemainBundle] pathForResource:@"ios"ofType:@"pdf"];// NSURL *fileUrl = [NSURL URLWithStrin翻译 2016-03-27 14:07:29 · 400 阅读 · 0 评论 -
iOS NSClassFromString 详解
http://www.cocoachina.com/mac/20090611/231.htmlNSClassFromString是一个很有用的东西,尤其在进行iPhone toolchain的开发上。正常来说,id myObj = [[NSClassFromString(@"MySpecialClass") alloc] init];和id myOb转载 2016-03-28 14:02:42 · 2131 阅读 · 0 评论 -
MRC/ARC通用的weakify和strongify
http://my.oschina.net/ioslighter/blog/393555?p=1准备将项目中的代码逐步转换为ARC,存在MRC与ARC并存的情况,想用一个通用的办法来解决循环引用的问题,找到了这份代码,太好了,一劳永逸。使用方法见注释: 本文链接:http://my.oschina.net/ioslighter/blog/393555?转载 2016-03-28 16:24:30 · 402 阅读 · 0 评论 -
ObjC的Block中使用weakSelf/strongSelf @weakify/@strongify
http://www.cnblogs.com/wanyakun/p/5198492.html首先要说说什么时候使用weakSelf和strongSelf。下面引用一篇博客《到底什么时候才需要在ObjC的Block中使用weakSelf/strongSelf》的内容:Objective C 的 Block 是一个很实用的语法,特别是与GCD结合使用,可以很方便地实现并转载 2016-03-28 16:25:53 · 667 阅读 · 0 评论 -
iOS NSArray 求两个数组的交集 两个数组去重
http://blog.csdn.net/watsy/article/details/17754467很久没写ios代码。最近和朋友聊天时候有强迫症,想强烈把代码给优化。问题是这样的:现在数据是日期数组,想过滤掉重复的日期,怎么解决。原始代码这里想到更简洁点。用NSSet来搞定。[objc] view plain co转载 2016-04-13 22:22:07 · 10190 阅读 · 0 评论 -
iOS运行时与method swizzling
http://blog.csdn.net/yiyaaixuexi/article/details/9374411Objective-C的hook方案(一): Method Swizzling在没有一个类的实现源码的情况下,想改变其中一个方法的实现,除了继承它重写、和借助类别重名方法暴力抢先之外,还有更加灵活的方法吗?在Objective-C编程中,如何实现hook呢?标题转载 2016-04-26 18:24:10 · 490 阅读 · 0 评论 -
iOS运行时与method swizzling
http://blog.csdn.net/sakulafly/article/details/27575871C语言是静态语言,它的工作方式是通过函数调用,这样在编译时我们就已经确定程序如何运行的。而Objective-C是动态语言,它并非通过调用类的方法来执行功能,而是给对象发送消息,对象在接收到消息之后会去找匹配的方法来运行。这种做法就把C语言在编译时的工作挪到了运行时来做,可转载 2016-04-26 18:24:52 · 249 阅读 · 0 评论 -
ios runtime void method_exchangeImplementations
http://blog.sina.com.cn/s/blog_9d25acc60102vts9.html如果对Runtime有一定了解的话,一定听说过或者用过这个函数:1void method_exchangeImplementations(Method m1, Method m2)它通常叫做m转载 2016-04-26 18:26:06 · 427 阅读 · 0 评论 -
Objective-C Runtime 运行时之四:Method Swizzling
http://southpeak.github.io/blog/2014/11/06/objective-c-runtime-yun-xing-shi-zhi-si-:method-swizzling/理解Method Swizzling是学习runtime机制的一个很好的机会。在此不多做整理,仅翻译由Mattt Thompson发表于nshipster的Method Swiz转载 2016-04-26 18:35:55 · 314 阅读 · 0 评论 -
iOS runtime 机制 通过别扩展category给一个类添加属性
http://www.cnblogs.com/tangbinblog/p/3944316.htmlcategory使用 objc_setAssociatedObject/objc_getAssociatedObject 实现添加属性属性 其实就是get/set 方法。我们可以使用 objc_setAssociatedObject/objc_getAssociate转载 2016-04-13 22:54:21 · 1672 阅读 · 0 评论 -
关联(objc_setAssociatedObject、objc_getAssociatedObject、objc_removeAssociatedObjects)
http://blog.csdn.net/onlyou930/article/details/9299169关联 关联是指把两个对象相互关联起来,使得其中的一个对象作为另外一个对象的一部分。 关联特性只有在Mac OS X V10.6以及以后的版本上才是可用的。在类的定义之外为类增加额外的存储空间 使用关联,我们可以不用修改类的定义而为其对象增加存转载 2016-04-13 23:10:33 · 303 阅读 · 0 评论 -
iOS 关联策略 详解
http://blog.jobbole.com/79570/在前面一篇文章中,我们介绍了Runtime中与类和对象相关的内容,从这章开始,我们将讨论类实现细节相关的内容,主要包括类中成员变量,属性,方法,协议与分类的实现。本章的主要内容将聚集在Runtime对成员变量与属性的处理。在讨论之前,我们先介绍一个重要的概念:类型编码。类型编码(Type Encoding)转载 2016-04-13 23:11:44 · 391 阅读 · 0 评论 -
Objective-C Associated Objects 的实现原理
http://www.cocoachina.com/ios/20150629/12299.html我们知道,在 Objective-C 中可以通过 Category 给一个现有的类添加属性,但是却不能添加实例变量,这似乎成为了 Objective-C 的一个明显短板。然而值得庆幸的是,我们可以通过 Associated Objects 来弥补这一不足。本文将结合 runtime 源转载 2016-04-13 23:13:13 · 388 阅读 · 0 评论