gpt4 book ai didi

objective-c - Apple 文档中的 Singleton 示例实际上做了什么?

转载 作者:搜寻专家 更新时间:2023-10-30 19:42:11 24 4
gpt4 key购买 nike

有人可以在这里向我解释一下有关 Apple 文档中的 Singleton 实现的一些事情吗。

链接:- http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CocoaFundamentals/CocoaObjects/CocoaObjects.html

转到链接中的创建单例实例

我尝试了但无法理解一些事情:-

  • + (MyGizmoClass*)sharedManager 中的 [super allocWithZone:NULL] 有什么作用?
  • 当 retain 本身返回 self 时,为什么 allocWithZone 调用 sharedManger 方法并在其返回类型上返回 retain 调用?
  • 如果单例中有一些实例变量,应该在哪里初始化?

如果有人能在这里简要解释一下 allocWithZone 和 sharedManager 方法的工作原理,那么其中很多问题都会自动得到解答。

最佳答案

该实现通常被认为是 over_kill。有很多保护措施可以防止程序员试图滥用通常认为没有必要的单例。

这是来自 Yoga 的更简单实现的示例:

+ (id)sharedFoo
{
static dispatch_once_t once;
static MyFoo *sharedFoo;
dispatch_once(&once, ^ { sharedFoo = [[self alloc] init]; });
return sharedFoo;
}

关于objective-c - Apple 文档中的 Singleton 示例实际上做了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8789981/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com