随笔分类 - Objective - C
摘要:React-Native牛刀小试仿京东 ios
阅读全文
摘要:http://foredoomed.org/blog/2014/02/24/object-modeling-of-objective-c/Objective-C是一门面向对象,并且在C的基础上加入了Smalltalk式的消息机制而形成的编程语言,它主要被苹果公司用于开发Mac OS X和iOS操作系...
阅读全文
摘要:http://desheng.me/2012/03/31/objective-c%E6%B6%88%E6%81%AF%E6%9C%BA%E5%88%B6%E7%9A%84%E5%8E%9F%E7%90%86/
阅读全文
摘要:Objective-C的对象模型Objective-C是一门面向对象,并且在C的基础上加入了Smalltalk式的消息机制而形成的编程语言,它主要被苹果公司用于开发Mac OS X和iOS操作系统。既然Objective-C是面向对象的编程语言,那么我感兴趣的就是对象在内存中是怎么组织和表示的,消息...
阅读全文
摘要:Objective-C是一门面向对象,并且在C的基础上加入了Smalltalk式的消息机制而形成的编程语言,它主要被苹果公司用于开发Mac OS X和iOS操作系统。既然Objective-C是面向对象的编程语言,那么我感兴趣的就是对象在内存中是怎么组织和表示的,消息机制又是怎么实现的。0.NSObjectNSObject类和Java中的Object类有点相似,都是所有一切类的父类,也就是根类。那么NSObject又是一个怎样的类呢。打开NSObject.h头文件就可以看到NSObject的源码:@interface NSObject { Class isa;}可以看到NSObject是...
阅读全文
摘要:单例模式算是开发中比较常见的一种模式了。在iOS中,单例有两种实现方式(至少我目前只发现两种)。根据线程安全的实现来区分,一种是使用@synchronized,另一种是使用GCD的dispatch_once函数。要实现单例,首先需要一个static的指向类本身的对象,其次需要一个初始化类函数。下面是两种实现的代码。1、@synchronizedstatic InstanceClass *instance;+ (InstanceClass *)defaultInstance{ @synchronized (self){ if (instance == nil) { ...
阅读全文
摘要:NSArray可变数组一、NSArray是静态数组,创建后数组内容及长度不能再修改。实例://用arrayWithObjects初始化一个不可变的数组对象。//初始化的值之间使用逗号分开,以nil结束。NSArray6 *city = [NSArray arrayWithObjects:@"上海",@"广州",@"重庆",nil];for(int i=0; i < [city count];i++){ NSLog(@"%@",[city objectAtIndex:i]);}NSArray常用方法:+(id)
阅读全文
摘要:NSDate *date = [NSDate date]; NSTimeZone *zone = [NSTimeZone systemTimeZone]; NSInteger interval = [zone secondsFromGMTForDate: date]; NSDate *localeDate = [date dateByAddingTimeInterval: interval]; NSLog(@"enddate=%@",localeDate);
阅读全文
摘要:浅层复制(copy):只复制指向对象的指针,而不复制引用对象本身。//通过对象的指针来访问这个对象深层复制(mutableCopy):复制引用对象本身意思就是有个A对象,复制一份后得到A_copy对象后,对于浅复制来说,A和A_copy指向的是同一个内存资源,复制的只不过是是一个指针,对象本身资源还是只有一份,那如果我们对A_copy执行了修改操作,那么发现A引用的对象同样被修改,这其实违背了我们复制拷贝的一个思想。深复制就好理解了,内存中存在了两份独立对象本身。//当修改A时,Acopy不变。打个比喻:1、浅拷贝就是:你挂了,你妈妈喊你回家吃饭时找不到人了,她很伤心。2、深拷贝就是:你克隆了
阅读全文
摘要:类别只是对现有的类更加完善其功能的扩展继承也可以实现这一目的,但是继承实际上从新创建了一个新的类,可以达到同种目的吗,但是类别更倾向于从方法上对现有的类做一些很简单的功能上的拓展,比较方便,类别不能增加新的实例变量,如果要引入新的实例变量,只能继承了就//类别主要有3个作用:(1)将类的实现分散到多个不同文件或多个不同框架中。(2)创建对私有方法的前向引用。(3)向对象添加非正式协议。继承可以增加,修改或者删除方法,并且可以增加属性。
阅读全文
摘要:1.自动释放池(在当前程序里创建应用程序释放池,并对每一个alloc的对象发送一个autorelease消息,相当于吧每个对象都注册到应用程序释放池中。当应用程序释放池被销毁的时候会对每一个池子内部的对象做一次release操作,如果对象的计数=1,再次释放后将会被销毁,如果之前大于一,那么autorelease之后讲减少1)2.retain copy assign( assign 用于基本赋值 retain 相当于钱拷贝,只把引用计数+1 ,把当前引用保留一次,在析构里面要对其release下 copy相当于从新开辟了一份空间用于存储对象的数据,相当于深拷贝,他又从新创建了一个计数为1的..
阅读全文
摘要:Notification是推送通知,我们可以建立一个通知中心,存放创建多个通知,在不同的地方在需要的时候push调用和KVO不同的是,KVO是键值观察,只能观察一个值,这就是区别
阅读全文
摘要:1.都是有C语言延伸而来2.OC是完全动态的,C++是部分动态的3.OC不支持多继承,通过代理 类别 协议优雅的实现了相关的一系列特性4.调用机制不同OC里面叫发送消息 C++叫做调用函数数5.OC里面的构造函数 析构函数为 allocate init//dealloc6.OC2.0之后加入了垃圾回收机制,引用计数机制7.OC不支持模板 不支持命名空间 不支持默认缺省参数
阅读全文
摘要:NSString是 NSCFString的父类在于NSString是个class cluster,一个类簇。什么是一个类簇?简单的来说,NSString是个“工厂类”,然后它在外层提供了很多方法接口,但是这些方法的实现是由具体 的内部类来实现的。当使用NSString生成一个对象时,初始化方法会判断哪个“自己内部的类”最适合生成这个对象,然后这个“工厂”就会生成这个具体 的类对象返回给你。这种又外层类提供统一抽象的接口,然后具体实现让隐藏的,具体的内部类来实现,在设计模式中称为“抽象工厂”模式。在这里,有的时间我们使用NSString的时间一直使用的是上转行变量,只是你没有发觉而已 比如 [N
阅读全文
摘要:NSString是一个常用的类,NSString是原生支持unicodeC中的字符串 比如char * a = "hello world"; 是utf8类型的,char* destDir = [filepath UTF8String];反过来的话使用这个方法char *str ="abc";NSString *s = [NSString stringWithUTF8String:str];
阅读全文