摘要: NSDate *date = [NSDate date]; NSTimeZone *zone = [NSTimeZone systemTimeZone]; NSInteger interval = [zone secondsFromGMTForDate: date]; NSDate *localeDate = [date dateByAddingTimeInterval: interval]; NSLog(@"enddate=%@",localeDate); 阅读全文
posted @ 2013-10-06 17:02 ccguo 阅读(797) 评论(0) 推荐(0) 编辑
摘要: 多线程在各种编程语言中都是难点,很多语言中实现起来很麻烦,objective-c虽然源于c,但其多线程编程却相当简单,可以与java相媲美。这篇文章主要从线程创建与启动、线程的同步与锁、线程的交互、线程池等等四个方面简单的讲解一下iphone中的多线程编程。 一、线程创建与启动 线程创建主要有二种方式: 当然,还有一种比较特殊,就是使用所谓的convenient method,这个方法可以直接生成一个线程并启动它,而且无需为线程的清理负责。这个方法的接口是: + (void)detachNewThreadSelector:(SEL)aSelector toTarget:(id)aTarget 阅读全文
posted @ 2013-10-06 14:41 ccguo 阅读(2520) 评论(0) 推荐(0) 编辑
摘要: 浅层复制(copy):只复制指向对象的指针,而不复制引用对象本身。//通过对象的指针来访问这个对象深层复制(mutableCopy):复制引用对象本身意思就是有个A对象,复制一份后得到A_copy对象后,对于浅复制来说,A和A_copy指向的是同一个内存资源,复制的只不过是是一个指针,对象本身资源还是只有一份,那如果我们对A_copy执行了修改操作,那么发现A引用的对象同样被修改,这其实违背了我们复制拷贝的一个思想。深复制就好理解了,内存中存在了两份独立对象本身。//当修改A时,Acopy不变。打个比喻:1、浅拷贝就是:你挂了,你妈妈喊你回家吃饭时找不到人了,她很伤心。2、深拷贝就是:你克隆了 阅读全文
posted @ 2013-10-06 14:25 ccguo 阅读(520) 评论(0) 推荐(0) 编辑
摘要: 先一句话总结:strong类保持他们拥有对象的活着,weak类他们拥有的对象被人家一牵就牵走,被人家一干就干死。(strong是一个好大哥所以strong,呵呵,weak是一个虚大哥所以weak,呵呵)比如有一个对象是string类,实例是@“hello”现有两个strong的string指针大哥a和b都指向了hello,现在b大哥把改成了指向@“hi”。那么这时候a大哥指向的值是什么呢,答案还是“hello”。然后,a大哥看hi不错,也指向了hi,那么现在hello就被都抛弃了,也就从内存中删除了。因为a大哥是strong的,既是retain或者copy的,这两个东西是可以使对象保存在计算机 阅读全文
posted @ 2013-10-06 14:17 ccguo 阅读(1203) 评论(0) 推荐(0) 编辑
摘要: GCD (Grand Central Dispatch) 是Apple公司开发的一种技术,它旨在优化多核环境中的并发操作并取代传统多线程的编程模式。在Mac OS X 10.6和IOS 4.0之后开始支持GCD。使用GCD的一个理由就是方便。回想一下以前的多线程编程,我们会把异步调用的代码放到另外的一个函数中,并通过NSThread开启新线程来启动这段代码。 这种跳来跳去的流程对于复杂的逻辑简直就是一场灾难。更糟糕的是,调用线程时的环境对异步代码是不可见的,如果我们需要当时的临时变量的话只有两个选择: 保存到类成员变量中或者作为参数传递过去。前者会造成很多莫名奇妙的无关类成员,而后者的功能过于 阅读全文
posted @ 2013-10-06 14:05 ccguo 阅读(1094) 评论(1) 推荐(2) 编辑
摘要: 类别只是对现有的类更加完善其功能的扩展继承也可以实现这一目的,但是继承实际上从新创建了一个新的类,可以达到同种目的吗,但是类别更倾向于从方法上对现有的类做一些很简单的功能上的拓展,比较方便,类别不能增加新的实例变量,如果要引入新的实例变量,只能继承了就//类别主要有3个作用:(1)将类的实现分散到多个不同文件或多个不同框架中。(2)创建对私有方法的前向引用。(3)向对象添加非正式协议。继承可以增加,修改或者删除方法,并且可以增加属性。 阅读全文
posted @ 2013-10-06 13:37 ccguo 阅读(736) 评论(0) 推荐(0) 编辑
摘要: 1.自动释放池(在当前程序里创建应用程序释放池,并对每一个alloc的对象发送一个autorelease消息,相当于吧每个对象都注册到应用程序释放池中。当应用程序释放池被销毁的时候会对每一个池子内部的对象做一次release操作,如果对象的计数=1,再次释放后将会被销毁,如果之前大于一,那么autorelease之后讲减少1)2.retain copy assign( assign 用于基本赋值 retain 相当于钱拷贝,只把引用计数+1 ,把当前引用保留一次,在析构里面要对其release下 copy相当于从新开辟了一份空间用于存储对象的数据,相当于深拷贝,他又从新创建了一个计数为1的.. 阅读全文
posted @ 2013-10-06 13:27 ccguo 阅读(119) 评论(0) 推荐(0) 编辑
摘要: Notification是推送通知,我们可以建立一个通知中心,存放创建多个通知,在不同的地方在需要的时候push调用和KVO不同的是,KVO是键值观察,只能观察一个值,这就是区别 阅读全文
posted @ 2013-10-06 13:25 ccguo 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 1.都是有C语言延伸而来2.OC是完全动态的,C++是部分动态的3.OC不支持多继承,通过代理 类别 协议优雅的实现了相关的一系列特性4.调用机制不同OC里面叫发送消息 C++叫做调用函数数5.OC里面的构造函数 析构函数为 allocate init//dealloc6.OC2.0之后加入了垃圾回收机制,引用计数机制7.OC不支持模板 不支持命名空间 不支持默认缺省参数 阅读全文
posted @ 2013-10-06 13:17 ccguo 阅读(191) 评论(0) 推荐(0) 编辑
摘要: NSString是 NSCFString的父类在于NSString是个class cluster,一个类簇。什么是一个类簇?简单的来说,NSString是个“工厂类”,然后它在外层提供了很多方法接口,但是这些方法的实现是由具体 的内部类来实现的。当使用NSString生成一个对象时,初始化方法会判断哪个“自己内部的类”最适合生成这个对象,然后这个“工厂”就会生成这个具体 的类对象返回给你。这种又外层类提供统一抽象的接口,然后具体实现让隐藏的,具体的内部类来实现,在设计模式中称为“抽象工厂”模式。在这里,有的时间我们使用NSString的时间一直使用的是上转行变量,只是你没有发觉而已 比如 [N 阅读全文
posted @ 2013-10-06 13:16 ccguo 阅读(3361) 评论(0) 推荐(0) 编辑
摘要: NSString是一个常用的类,NSString是原生支持unicodeC中的字符串 比如char * a = "hello world"; 是utf8类型的,char* destDir = [filepath UTF8String];反过来的话使用这个方法char *str ="abc";NSString *s = [NSString stringWithUTF8String:str]; 阅读全文
posted @ 2013-10-06 13:09 ccguo 阅读(280) 评论(0) 推荐(0) 编辑
摘要: 大家好,换博客了,希望大家多多关注,在以后的时间里我会更多的和大家分享我对编程的理解,希望大家多来逛逛... 阅读全文
posted @ 2013-10-06 13:04 ccguo 阅读(108) 评论(0) 推荐(0) 编辑
我要啦网店统计