- 博客(10)
- 资源 (8)
- 收藏
- 关注
原创 OC中多线程执行顺序的控制
OC中多线程主要使用的GCD和NSOperation和NSOperationQueueGCD时基于C语音开发的一套多线程开发机制,时完全面向过程的。GCD统一管理整个队列中的任务。GCD队列分为并行队列和串行队列。串行队列:只有一个线程,加入到队列中的操作按添加顺序依次执行。并发队列:有多个线程,操作进来之后它会将这些队列安排在可用的处理器上,同时保证先进来的任务优先处理。NSOp
2016-05-16 10:49:00
5350
原创 Category 笔记 最新理解和动态添加属性
本文并不介绍什么是Category和Category好处,相信大家都知道Category里面是不能添加属性的,但是有没有试一下添加属性后会发生什么呢,或者有没有什么方法可以添加属性呢。一:添加属性后会发生什么?相信大家都知道程序会崩溃,确实崩溃。我今天试了一下如果直接添加成员变量的话,编译器直接报错,提示tagegories中不能存在实例变量如果是添加属性,不会自动生成 _
2016-04-24 17:18:11
378
原创 面试常见的几个宏的定义
不考虑闰年一年有多少秒:#define SECONDS_PER_YEAR (365*24*60*60)UL比较两个数的大小 #define MYMIN(x,y) (((x) > (y))?(y):(x)) 比较三个数的大小:#define MYMIN2(x,y,z) MYMIN( MYMIN(x,y),z)
2016-04-19 22:04:18
275
原创 使用dispatch_once写单例注意
static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ });以上是正确的写法。注意 :1.不能给onceToken随便赋值 onceToken 是用来判断是否执行过 如果赋值为0 则没有只执行一次的效果,如果写成-1则一次不会执行 如果赋值成其它值则程序崩溃
2016-04-08 11:22:50
407
原创 autoreleasepool什么时候释放
个人觉得autoreleasepool的释放分两种情况。一个是在runloop中隐式创建的autoreleasepool,每个接受autorelease消息的对象,都会在runloop结束时释放。下面这张图解释的比较容易理解:二是自定义的自动释放池有两种自定义的方法:NSAutoreleasePool *pool = [[NSAutoreleasePool al
2016-04-07 14:44:04
3088
原创 iOS 中copy的简单理解
一个对象的准确类型是在分配内存空间的时候指定 ,程序员指定的类型只是让该对象有该类型的方法。能否使用指定类的方法取决于运行时,这个对象的类型是否正确。(理解这两句句话很重要)有可变不可变之分时:可变 -》不可变 copy 可变 -》可变 mutableCopy不可变 -》可变 mutableCopy不可变 -》不可变 copy 不可变做一次copy 得到
2016-04-07 09:40:04
464
原创 oc中检测一个实例是否可变
1.为检测一个实例是否可变,不能单单去看他得类。这些可变不可变都是类集群来实现,Cocoa骑士不是用文档中说明的那些类而是一个隐藏类来工作。这个隐藏类是透明的,我们也不用关心他时怎么工作的。因此下面的代码是错误的: if ([NSStringFromClass([myObject class]) isEqualToString:@"__NSArray0"]) { //错误
2016-03-31 09:18:22
559
原创 iOS Core Data简单演练
在看之前请先查看这篇内容点击打开链接 这里面对一些基本的操作已经很全面。我自己的学习也是总这么文章开始的。先贴一个苹果官方的出事后一个coredata的方法-(void)initializeCoreData{//实例化数据模型NSURL*modelURL= [[NSBundlemainBundle]URLForResou
2016-03-23 15:59:01
67
最全c++面试题
2012-06-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人