A fun question on cocoa singleton

使用cocoa实现singleton往往会用 dispatch_once。
dispatch_once的block内的代码被保证只执行一次
现在问题来了,如下代码运行是什么结果?

  
Foo *bar = [Foo shared];
[bar release];
bar = nil;
...
...
Foo *bar2 = [Foo shared]; //这里能得到什么?a pointer to a deallocated memory?

follow up的问题:如何解决这个问题,来允许正确地多次创建单例

评论 (0)链接2013-11-14 
德问是一个专业的编程问答社区,请 登录注册 后再提交答案