随笔分类 - Objective C
摘要:单例在程序设计中很常用,objective c中单例的写法与java等其他语言有些差别官方建议由于自己设计单态模式存在一定风险,主要是考虑到可能在多线程情况下会出现的问题,因此苹果官方建议使用以下方式来实现单态模式:static MyGizmoClass * sharedGizmoManager = nil;+ (MyGizmoClass*)sharedManager{ @synchronized(self) { if (sharedGizmoManager == nil) { [[self alloc] init]; // assignment not done here } } retur
阅读全文
摘要:1.alloc、new或copy来创建一个对象,那么你必须调用release或autorelease。换句话说,不是你创建的,就不用你去释放。(谁创建谁释放,对象所有权负责释放)2.如果你在一个class的某个方法中alloc一个成员对象,且没有调用autorelease或及时releaase, 那么你需要在这个类的dealloc方法中调用release;如果调用 了autorelease,那么在dealloc方法中什么 都不需要做。3.尽量用sel.xxx = xxx来对对象进行赋值操作,在对象不用的时候也可以用self.xxx = nil来对其释放注意下面这个例子里,你无需保留新建的数值,
阅读全文
摘要:nil 是对objective c id 对象赋空值例如NSString * string = [NSString stringWithFormat:@"test"]; string = nil;对于objective c 集合类对象 比如数组对象,字典对象,当我们不需要再使用他们的时候,对他们release 的同时最好也把他们赋值为nil,这样确保安全性,下面一个简单的一个例子:如果不赋值nil,可能导致程序崩溃NSArray * array = [NSArray arrayWithObjects:@"test",@"test1"
阅读全文
摘要:oc当中通过@property和@synthesize 配对使用来自动生成变量的set和get方法,通过使用点语法可以大大减少我们程序员代码量,也方便学习过其他语言的人上手oc语言@property有以下几种属性readwrite 默认assign 默认readonly 只读(只有get方法,禁用set方法)给setter和getter方法起别名(setter = a:, getter = b) atomic 开启多线程变量保护,会消耗一定的资源(非原子性,保证多线程安全) nonatomic:禁止多线程变量保护,提高性能assign:直接赋值,适用于基本数据类型(非对象类型)retai...
阅读全文

浙公网安备 33010602011771号