![]() |
1
6
我可能是特别密集,但肯定是你的第5行
分配包含类类型的对象,并立即将其丢弃?你不想要
? |
![]() |
2
5
苹果已经更新了他们的 recommended singleton code 要通过静态分析仪:
现在
编辑: 为什么保留在+allocWithZone:? +allocWithZone:被重写,因为使用MyGizMoClass的人可以通过调用[[MyGizMoClass alloc]init]而不是[MyGizMoClass SharedManager]来绕过单例。它被保留是因为+alloc总是返回保留计数为+1的对象。 对+alloc的每个调用都应该使用-release或-autorelease进行平衡,因此如果没有在+allocWithZone中保留,共享实例可能会从其他用户下释放出来。 |
![]() |
3
4
您可能对发布的基于gcd的单例实现(因此仅限于10.6+方法)感兴趣 Mike Ash's site :
|
![]() |
4
1
您正在引用
|
![]() |
5
0
你可能也有这个…
您没有将它存储在in it中的原因是您将它存储在alloc调用的方法中。这就是苹果在其示例中的模式。如果您在init中也保存了这个值,那么一切都会好起来,警告就会消失。我将不使用allocWithZone实现。 |
![]() |
Sam Kellett · 为C++库提供C API和严格别名 7 年前 |
![]() |
Wietlol · LLVM IR本机方法 7 年前 |
![]() |
mikasa · llvm-将参数传递给传递 7 年前 |
![]() |
James Allingham · llvm JIT将库添加到模块 7 年前 |