08 2016 档案
摘要:经典面试题:为什么 NSString 类型成员变量的修饰属性用 copy 而不是 strong (或 retain ) ? 在初学 iOS 的时候,可能会被灌输这么一个常识,切记 NSString 的 property 的修饰变量要写作 copy ,而不是 strong,那么这是为什么? 我们在声明
阅读全文
摘要:问题: stackoverflow上有人提问这样的问题 http://stackoverflow.com/questions/16071503/how-to-tell-when-uitableview-has-completed-reloaddata 如果在调用reloadDate方法后需要立即获取
阅读全文
摘要:一、KVC 的用法和实践 用法 KVC(Key-value coding)键值编码,顾名思义。额,简单来说,是可以通过对象属性名称(Key)直接给属性值(value)编码(coding)“编码”可以理解为“赋值”。这样可以免去我们调用getter和setter方法,从而简化我们的代码,也可以用来修改
阅读全文
摘要:KVO的用法 KVO也就是key-value-observing(即键值观察),利用一个key来找到某个属性并监听其值得改变。用法如下: 添加观察者 在观察者中实现监听方法,observeValueForKeyPath: ofObject: change: context:(通过查阅文档可以知道,绝
阅读全文
摘要:当我们需要将一个对象进行归档时,都要让该对象的类遵守NSCoding协议,再实现归档和接档方法。例如有一个Person类,该类有两个成员变量 两个协议的实现方法如下 但当该类拥有上百个属性时,那将会花费更多的功夫在重复代码上,所以使用运行时机制截取类的成员变量,进行赋值 例如有一个狗类Dog和它的父
阅读全文
摘要:一、对象的关联方法有 1、 void objc_setAssociatedObject(id object, const void *key, id value,objc_AssociationPolicy policy) ,关联对象(将值value与对象object关联起来) 参数key:将来可以
阅读全文
摘要:动态的交换方法能够给项目中大量已经使用的方法 进行拦截增加操作 实践:利用运行时交换系统的ImageNamed:方法 应用背景 当系统需要适配ios7和ios8时可能会有显示不同图片的需求,但在老项目上开发ios7程序时并未考虑到ios8的适配,当项目上有几百处地方用到ImageNamed:方法时,
阅读全文
摘要:我们在使用苹果官方的文档的时候会发现可传不定数的参数例如: 这时你会发现 最后一个参数苹果会这样写 并且给你提示 ... 并以nil结尾 otherButtonTitles:<#(nullable NSString *), ...#>, nil 我们自己写的时候怎么做到这种效果的提示呢 ? 又怎么获
阅读全文
摘要:IMP IMP-指向实际执行函数体的函数指针 可以看到,这个函数体前两个参数是 id(消息接受者,也就是对象),以及SEL(方法的名字) method/objc_method method - 指向Objective C中的方法的指针 其中 _cmd SEL 类型的一个变量,Objective C的
阅读全文
摘要:一、整体介绍 UIWebView自iOS2就有,WKWebView从iOS8才有,毫无疑问WKWebView将逐步取代笨重的UIWebView。通过简单的测试即可发现UIWebView占用过多内存,且内存峰值更是夸张。WKWebView网页加载速度也有提升,但是并不像内存那样提升那么多。下面列举一些
阅读全文
摘要:一、Storyboard中的UIScrollView使用自动布局 在使用storyboard和xib时,我们经常要用到ScrollView,还有自动布局AutoLayout,但是ScrollView和AutoLayout 结合使用,相对来说有点复杂。根据实践,我说一下我的理解,在故事板或xib中,S
阅读全文
摘要:iOS程序的启动执行顺序 AppDelegate 及 UIViewController 的生命周期 iOS应用程序的状态切换很重要,而UIViewControler对于iOS这种MVC模式来说尤为重要,基本都要继承自他。 一、iOS程序的启动执行顺序 1 程序的入口 进入main函数, 设置AppD
阅读全文

浙公网安备 33010602011771号