利用LDIFDE来添加、修改、删除用户账户--创建
2010-06-01 14:38
513 查看
static MyGizmoClass *sharedGizmoManager = nil; + (MyGizmoClass*)sharedManager { @synchronized(self) { if (sharedGizmoManager == nil) { [[self alloc] init]; // assignment not done here } } return sharedGizmoManager; } + (id)allocWithZone:(NSZone *)zone { @synchronized(self) { if (sharedGizmoManager == nil) { sharedGizmoManager = [super allocWithZone:zone]; return sharedGizmoManager; // assignment and return on first allocation } } return nil; //on subsequent allocation attempts return nil } - (id)copyWithZone:(NSZone *)zone { return self; } - (id)retain { return self; } - (unsigned)retainCount { return UINT_MAX; //denotes an object that cannot be released } - (void)release { //do nothing } - (id)autorelease { return self; }
碰到allocWithZone, copyWithZone总会有个疑问,这个NSZone到底是个什么东西?
简单来说,可以想象成一个内存池,alloc或是dealloc这些操作,都是在这个内存池中操作的。
cocoa总是会配置一个默认的NSZone,任何默认的内存操作都是在这个“zone”上操作的。默认的NSZone的缺陷在于,它是全局范围的,时间一长,必然会导致内存的碎片化,如果你需要大量的alloc一些object,那么性能就会受到一些影响。
所有cocoa提供方法,你可以自己生成一个NSZone,并将alloc, copy全部限制在这个”zone“之内。
相关文章推荐
- 利用LDIFDE来添加、修改、删除用户账户--修改和删除
- 在DNN中通过代码添加、修改、删除用户和给特定用户创建、删除角色
- 创建用户、设置密码、修改用户、删除用户.
- linux创建用户、设置密码、修改用户、删除用户
- linux用户管理命令(添加,删除,修改)
- MySQL创建、删除用户、授权和修改密码方法
- Mysql创建用户表并利用存储过程添加100万条随机用户数据
- Linux创建/删除/修改/密码/ 用户知识学习
- MySQL中修改密码、编码设置、创建新用户、删除新用户以及备份等指令
- linux中用户创建与删除以及文件权限查看和修改
- mysql修改密码 创建数据库 添加新用户
- Linux命令(9):添加,删除,修改,查看用户和用户组
- Ubuntu添加、删除、修改账户
- MySql中添加用户,新建数据库,用户授权,删除用户,修改密码
- mysql用户密码修改,用户添加、删除及设置权限
- oracle中创建表 和添加、删除、修改字段sql
- linux创建用户、设置密码、修改用户、删除用户
- VC 操作ACCESS的创建数据库,表,添加修改删除记录等
- RedHat用户管理(添加,删除,修改)
- linux批量创建用户,修改配置文件添加用户