1 何爲原型模式:
2 何時使用原型模式:
3 自定義原型模式:
對象的複製相當於java中的clone()方法.也就是對象的深度複製-----即爲其分配一個新的內存空間,並將原
對象的內容複製出來,複製也會分配內存空間,那就是你要對複製出來的對象release.Object-C中的對象是否可以被
復制,要看他是否遵循NSCopying協議,同時實現 -(id)coprWithZone:(*NSZone)zone 方法,該方法由系統調
用.
Engine.h
#import <Foundation/Foundation.h>
@interface Engine :NSObject<NSCopying>
@end
Engine.m
/*
NSZone---->一個表示內存空間的對象
這個類方法必修使用[self class]來調用,因爲Engine對象可能會有子類,
若子類調用他的copyWithZone方法,由於allocWithZone用的是Engine對象,若
子類新增了成員變量,則新增的成員變量不會分配內存空間,從而造成內存泄露.
*/
#import "Engine.h"
@implementation Engine
-(id) copyWithZone:(NSZone *)zone{
Engine *engine = [[[self class] allocWithZone:zone]init];
return engine;
}
@end