随笔分类 -  Objective-C

上一页 1 2

retain, copy, assign以及autorelease
摘要:一,retain, copy, assign区别1. 假设你用malloc分配了一块内存,并且把它的地址赋值给了指针a,后来你希望指针b也共享这块内存,于是你又把a赋值给(assign)了b。此时a 和b指向同一块内存,请问当a不再需要这块内存,能否直接释放它?答案是否定的,因为a并不知道b是否还在使用这块内存,如果a释放了,那么b在使用这块内存的时候会引起程序crash掉。2. 了解到1中assign的问题,那么如何解决?最简单的一个方法就是使用引用计数(reference counting),还是上面的那个例子,我们给那块内存设一个引用计数,当内存被分配并且赋值给a时,引用计数是1。当把a 阅读全文

posted @ 2013-11-23 21:04 IOS开发者 阅读(204) 评论(0) 推荐(0)

自定义 一个单例
摘要:单例是一种重要的概念,它是一种极其便利的设计模式#import @interface DanLi : NSObject{ NSString *someProperty;}@property (nonatomic,retain) NSString *someProperty;+ (id)sharedDanli;@end#import "DanLi.h"@implementation DanLi@synthesize someProperty;+ (id)sharedDanli{ static DanLi *myDanli = nil; /*通过GCD的dispath_once 阅读全文

posted @ 2013-11-23 20:37 IOS开发者 阅读(260) 评论(0) 推荐(0)

typedef的用法总结
摘要:用途一:定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的多个对象。比如:char* pa, pb;// 这多数不符合我们的意图,它只声明了一个指向字符变量的指针,// 和一个字符变量;以下则可行:typedef char* PCHAR;PCHAR pa, pb;这种用法很有用,特别是char* pa, pb的定义,初学者往往认为是定义了两个字符型指针,其实不是,而用typedef char* PCHAR就不会出现这样的问题,减少了错误的发生。用途二: 用在旧的C代码中,帮助struct。以前的代码中,声明struct新对象时,必须要带上struct,即形式为: struct 阅读全文

posted @ 2013-10-20 13:45 IOS开发者 阅读(407) 评论(0) 推荐(0)

上一页 1 2