转载:http://blog.csdn.net/sbvfhp/article/details/47858469


以下是官方公布的单例写法


Objective-C 里的 Alloc 和 AllocWithZone的区别


运行结果如下图:

Objective-C 里的 Alloc 和 AllocWithZone的区别

很明显,我们在调用alloc的时候,默认的alloc会调用allocWithZone方法


接着看下图:

Objective-C 里的 Alloc 和 AllocWithZone的区别

可以看出,单例是生效的,调用alloc 和 调用allocWithZone生成的单例是相等的。



接下来,我们对官方例子做一个修改:

Objective-C 里的 Alloc 和 AllocWithZone的区别


屏蔽allocWithZone后测试效果如下:

Objective-C 里的 Alloc 和 AllocWithZone的区别


综上可以知道:
1、alloc和allocWithZone都可以用于创建实例(其实是用于创建实例的时候分配内存空间)
2、alloc会默认调用allocWithZone方法
3、如果不重写allocWithZone方法,在调用alloc和allocWithZone方法产生的实例可能不是同一个实例,单例未真正实现

相关文章:

  • 2022-12-23
  • 2021-06-06
  • 2022-12-23
  • 2021-08-20
  • 2021-08-01
  • 2022-01-13
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-10-08
  • 2021-07-19
  • 2022-03-05
  • 2021-11-05
  • 2021-05-02
  • 2021-12-04
相关资源
相似解决方案