随笔分类 - 语言
摘要:熟练使用KVC 可以再开发过程中可以给我们带来巨大的好处,尤其是在json 转模型的时候,KVC让程序员摆脱了繁琐无营养的代码堆积。减少代码量就是减少出错的概率。KVC 用起来很灵活,这种灵活的基础是严格的命名要求。这种命名要求其实是一种约定。再程序的世界里,约定的作用远远大于开发本身,良好的约...
阅读全文
摘要:二、移魂大法使用runtime还可以交换两个函数。先贴上代码和执行结果。#import @interface DZLPerson : NSObject@property(nonatomic,weak)NSString *name;@property(nonatomic,assign)NSIntege...
阅读全文
摘要:一、 简介 IOS 开发中灵活使用runtime 会提高我们的程序性能和开发速度。要想使用runtime,首先要引入系统的头文件。 当我接触一样新的知识的时候,我比较喜欢先查看一下头文件,看看头文件里给我们提供了哪些接口。由于篇幅限制,我就偷个懒不往这里粘贴代码了。当我们查看runtime.h的时候
阅读全文
摘要:initialize 是类方法,创建实例时会调用该方法。但是只会调用一次。如一个类创建了10个对象,initialize方法只会调用一次,但是init会调用10次。init 是实例方法,每次创建一个实例都会调用。调用在initialize之后。如果当前类没有实现initialize 方法,则系统...
阅读全文
摘要:#import "ClassA.h"@interface ClassA (test)@property(cpoy,nonatomic)NSString *str;-(void)test1;@end分类不可以直接添加属性,但是如果你直接添加属性则会报错。如上,如果为ClassA 添加属性,再编译时不会...
阅读全文
摘要:KVC(键值编码)和OC 字典很相似,都是键值存储。但是OC 字典比较灵活,它是一种映射。 [dict setObject: forKey:)#>]int main(int argc, const char * argv[]){ @autoreleasepool { NSM...
阅读全文
摘要:开发中我们经常会遇到这样的情况,我们在IOS 6.0开发的程序,当出现IOS 7.0 或者IOS8.0的时候,我们代码中得某些方法苹果已经不推荐使用了,建议我们改用新的方法。如果我们不更新方法,则会出现警告。如果我们再项目多个文件中大量的使用了该方法,显然一个个的手动更改是不合适的。#import ...
阅读全文
摘要:对象拷贝主要由两种方式:copy和mutableCopy。浅拷贝是指直接将指针指向原有的地址,从而达到复制的目的。深拷贝是指重新生成一个对象,将原有对象的内容复制到新的对象中。copy 返回的是一个不可变的对象,mutableCpoy返回的是一个可变的对象,但是由于OC的弱语法特性,即使如下使用编译...
阅读全文
摘要:C语言中的变量按存储区域可以分为三种:堆栈中的自动变量,普通内存中得静态变量,硬件寄存器变量。由于寄存器变量直接存放在CPU中,而不在内存中,所以访问速度极快。一般应用于需要大量次数访问的变量。寄存器变量只能存放int ,char和指针类型的数据,而且寄存器变量不能过多的使用,否则反而会降低运算速度...
阅读全文
摘要:大家都知道GCD 有两种队列:一种是串行队列,一种是并发队列。什么是串行队列?串行队列就是队列中的代码块一个一个按顺序执行,每当上一个代码块执行结束后下一个代码块才会执行。打个比方,如果队列是一些首尾相连的火柴。那么串行队列里,这些火柴只有在前一根火柴燃烧殆尽之后自己才会燃烧。而并发队列则不是这样,...
阅读全文
摘要:学IOS 的大家都知道,IOS 一共有三种内存管理方式:MRC 、ARC、自动释放池。我按照我个人的理解简述一下自动释放池,希望能给大家一点帮助,如有错误请大家及时批评指正。自动释放池有几个特点:1、延缓释放、集中释放,也就是说自动释放池不是说立即释放,而是在自动释放池结束时检查那些空间需要实现自...
阅读全文

浙公网安备 33010602011771号