我的 Objective-C 单例应该是什么样子? [关闭]

2024-03-28

我的单例访问器方法通常是以下的一些变体:

static MyClass *gInstance = NULL;

+ (MyClass *)instance
{
    @synchronized(self)
    {
        if (gInstance == NULL)
            gInstance = [[self alloc] init];
    }

    return(gInstance);
}

我可以做些什么来改善这一点?


另一种选择是使用+(void)initialize方法。从文档中:

运行时发送initialize就在从程序中向该类或任何继承该类的任何类发送其第一条消息之前,向程序中的每个类发送一次。 (因此,如果不使用该类,则该方法可能永远不会被调用。)运行时发送initialize以线程安全的方式向类发送消息。超类在其子类之前收到此消息。

所以你可以做类似这样的事情:

static MySingleton *sharedSingleton;

+ (void)initialize
{
    static BOOL initialized = NO;
    if(!initialized)
    {
        initialized = YES;
        sharedSingleton = [[MySingleton alloc] init];
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我的 Objective-C 单例应该是什么样子? [关闭] 的相关文章

  • 更改 NSManagedObject 属性而不触发委托方法?

    有什么方法 或技巧 可以修改NSManagedObject目前由一名代表持有NSFetchedResultsController不触发didChangeObject and controllerWillChangeContent 委托方法
  • NSlog 不打印新行 \r\n

    我尝试添加新行NSlog I run NSLog n r n r n json1 NSLog n r n r n json2 然而输出是 2017 03 29 16 09 50 InAppTestAfApp2 312 33527 attri
  • 用简单的英语来说,什么是单例?

    我已经在谷歌上搜索了大约一个小时 但我仍然不清楚什么是单例 谁能让我更清楚一点 也许可以发布一个代码示例 我所知道的是 一个给定类只能有一个实例 但是你不能为此使用静态类吗 提前致谢 The simple plain English1 ve
  • 在 Objective-C (iPhone) 中从 Excel 文件读取数据 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我在 google 中搜索过 但似乎没有找到从 Objective C 读取 Excel 文件的方法 我找到的唯一答案是首先转换为 CSV
  • Javascript 沙箱模式示例实现

    在 Stoyan Stefanov 的伟大著作 JavaScript Patterns 的第 101 页中 他解释了沙箱模式 我非常喜欢他的书 但我真的错过了一些现实生活中的例子 然后更好地理解他所谈论的内容 我正在寻找一个现实生活中的工作
  • 如何在Mac的cocoa应用程序中允许用户的主文件夹的权限

    我有一个 Mac 应用程序 其中我正在从用户的主目录中删除一些数据 我的应用程序被拒绝 原因如下 The app only finds files in the Downloads folder It would be appropriat
  • UITableView 顶部出现间隙[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我不确定现在问这个问题是否合适 我正在表视图上使用 Xcode 5 预览版 现在的问题是我的表格视图是否被选择为group比我在第一个单元
  • C++ 包装类的设计

    我必须使用一个界面非常笨拙的旧类 由于我无法更改它并且依赖它 因此我想构建一个包装器 提供一个干净的界面 假设我有课笨手笨脚的班级 基本上 我有三种方法 1 参考会员 Class Wrapper public Wrapper ClumsyC
  • 为什么 UIScrollView 在顶部留有空间并且不滚动到底部

    我是 Objective C 编程新手 我正在使用 UIScrollView 及其上的一些标签 图像和文本视图 我已关闭自动布局 并已尝试打开 调整滚动视图插图 标题中描述的情况 和关闭 不滚动 这是我插入 viewDidLoad 的内容
  • UIPageControl 未显示

    我使用以下内容来显示滚动视图和页面控制 scrollView UIScrollView alloc initWithFrame CGRectMake 0 0 320 179 pageControl UIPageControl alloc i
  • 在ios中通过社交框架登录Facebook

    我是 iOS 开发新手 我必须将 Facebook 登录集成到我的 iOS 应用程序中 当用户登录时 它会获取所有信息并将其导航到主屏幕 我已经通过 Facebook 最新的 SDK 完成了此操作 但我希望通过社交框架完成此操作 我浏览了很
  • 为什么我收到错误“错误 C2259:...无法实例化抽象类”?

    任何帮助都是appriced 我正在研究 C 工厂模式 但收到此错误 1 gt c users brian documents visual studio 2010 projects cst276lab 3 guitar hpp 456 错
  • 自定义键盘 iphone,UITextView 中的退格按钮有问题

    检查此代码 我的自定义键盘 IBAction updateTextBackSpace id sender if txtview text length gt 0 NSString deletedLastCharString txtview
  • 当使用 loadView 创建视图时,视图的框架大小在旋转时不会改变

    我有没有 xib 的 UIViewController 并且我正在使用 loadView 来构建创建并添加两个滚动视图的 UI 问题是 当旋转发生时 主视图框架的大小不会改变 我的意思是 我在 loadView 中设置主视图的初始帧大小 纵
  • 如何在iPhone上绘制“对话气泡”?

    当您右键单击扩展坞中的某个内容时 我试图获得类似于 Mac OS X 中的 语音气泡 效果 这是我现在所拥有的 我需要得到下部的 三角形 部分 有什么办法可以画出这样的东西并在它周围加上边框吗 这将是为了iPhone app 提前致谢 ED
  • 如何对其中包含自定义对象的 NSMutableArray 进行排序?

    我想做的事情看起来很简单 但我在网上找不到任何答案 我有一个NSMutableArray对象 假设它们是 Person 对象 我想排序NSMutableArray通过 Person birthDate 这是一个NSDate 我认为这与这个方
  • 保存时出现 iphone 核心数据未解决的错误

    尝试保存时 我从核心数据中收到一条奇怪的错误消息 但问题是错误不可重现 在执行不同任务时 它会在不同时间出现 错误消息 Unresolved error Domain NSCocoaErrorDomain Code 1560 UserInf
  • iphone navigationController :在退出当前视图之前等待 uialertview 响应

    我有一个带有由导航控制器管理的后退按钮的视图 我想在用户单击后退按钮时检查文件是否已保存 如果文件已保存 您将返回到上一个视图 否则 uialertview 会询问您是否要保存文件 所以我这样做了 但视图消失了 然后警报视图出现了 void
  • 通过 CTFontRef 或 CGFontRef 对象中的字形索引获取 unicode 字符

    CTFontRef 提供了出色的方法 例如CTFontGetGlyphsForCharacters用于将字符映射到字形 我的问题是 有没有逆映射的方法 也就是说 我可以通过给定的字形获取字符吗 自从我发现有一个CTFontCopyChara
  • stringFromDate 始终为 NIL

    我知道这是一个重复的问题 但是在 stackoverflow 和 google 上搜索了许多类似的问题后 没有一个解决方案对我有用 我正在尝试将从数据库收到的日期转换为字符串格式以在 iPhone 应用程序中显示 我正在按以下方式将日期转换

随机推荐

  • AfxGetAppName() 返回垃圾字符

    我的应用程序中有以下代码行 CString strAppName AfxGetAppName 有时会充满strAppName出现了垃圾字符 我不明白为什么 有人有主意吗 TIA 如果你改变的话这是可能的m pszAppName手动 在应用程
  • 将字符串列表通过管道传输到 for 循环

    我如何将列表传递给for在bash中 I tried echo some different lines for i do echo do something with i done 但这行不通 我也试图找到一个解释man但没有man fo
  • 使用 javascript 在循环内设置超时

    我正在制作一个解谜函数 它使用当前打乱顺序的一系列拼图 每个片段都有一个 id 它指向数组中的正确位置 我在要交换的部分上设置了叠加颜色 我希望在着色和交换的部分之间有一个延迟 function solvePuzzle while rezo
  • JavaScript/GSON:通过对象图动态访问 JSON 引用(循环引用)

    由于存在多个循环引用 我在通过 Google GSON 序列化 Java 对象时遇到了问题 我所有的尝试都以 StackOverflowException 结束 因为 GSON 无法处理这些循环引用 作为解决方案 我发现以下GraphAda
  • SELECT FOR UPDATE 中的数据库死锁

    我的应用程序间歇性陷入僵局 我的应用程序有 1 个表 例如 EMPLOYEE ID PK NAME SAL 并且有 2 个会话 第一节 SELECT ID NAME SAL FROM EMPLOYEE WHERE SAL SELECT MI
  • spring mvc 对 URL 参数进行加密和编码

    我正在编写一个 Spring mvc 应用程序 它需要发送一封包含链接和加密参数的电子邮件 用户将单击该链接 我需要解密新页面中的参数 因此 我正在编写一个 util 类来加密和解密以及对参数进行编码和解码 当我运行我的独立java类 用于
  • 你能告诉 PHP 在发生错误时发送标头(如 500)吗?

    在我当前的项目中 我使用普通 HTTP 请求查询 PHP 但也通过 AJAX 查询 有时返回 JSON 格式的数据 有时返回普通文本 当发生错误时 在正常请求中 您会看到错误消息并可以采取一些措施 另一方面 对于 AJAX 请求 您无法确定
  • getchar() 返回错误的特殊情况是什么?

    所以我知道getchar 当输入结束或发生错误时返回 EOF 我也知道我可以通过以下方式检查发生了哪些情况ferror stdin and feof stdin 我想知道什么情况下会特别发生错误 我检查了这两个函数的手册页 但那里没有任何内
  • 就性能而言,使用 std::memcpy() 还是 std::copy() 更好?

    是不是比较好用memcpy如下所示还是使用更好std copy 就性能而言 为什么 char bits NULL bits new std nothrow char int copyMe gt bits 0 if bits NULL cou
  • 使用 Foreman 重新启动单个进程

    我已经使用 foreman 一段时间来以集中方式扩展我的各种 ruby 流程 并且它对我来说工作得很好 无论如何 我希望有一些功能来重新启动进程 甚至给它更多的控制权 例如终止进程并再次启动它 在当前的实现中 当我终止一个进程时 主工头中的
  • Chrome 无法播放 MP4

    我每天都会从我的安全摄像头系统中收到几封发送到我的 Gmail 帐户的电子邮件 此类邮件包含来自摄像机的 MP4 格式的视频剪辑 每个大约 20 秒 的链接 奇怪的是 在基于 Mageia 的 PC 上单击此类链接后 剪辑将打开并在新的单独
  • 在matlab中将绘图保存到图像文件中:saveas和print之间的区别

    我想知道在matlab中将绘图保存到图像文件时 saveas和print有什么区别 什么情况下两者可以同时使用 什么情况下只能使用其中一种 感谢致敬 我相信 SAVEAS 只是 PRINT 的包装 查看 SAVEAS 的源代码 编辑 sav
  • 对于缺少模板,给出 404 而不是 500 错误

    我有一个 Rails 3 0 应用程序 正在进行 3 2 升级 每当有人请求不存在的模板时 它都会在生产中给出 500 错误 例如 mysite com blog posts 532 将 ID 为 532 的帖子以 HTML 形式发送回来
  • 如何访问页面框架以通过 UWP 中的 UserControl 对象导航页面?

    我正在开发一个 UWP 应用程序 涉及多个用户控制 https learn microsoft com en us dotnet api system windows controls usercontrolMap 中的对象使用Window
  • 月份 R 没有前导零 [重复]

    这个问题在这里已经有答案了 format 在 R 中没有明显的选项来显示不带前导 0 的月份 与年份相同 还有其他方法可以得到这个结果吗 该解决方案应允许用户灵活选择是否仅在日 月 年或任意组合中省略 0 in as Date 2005 0
  • 在特定窗口中打开 Org Capture 缓冲区?

    我成为 Emacs 用户大约一年左右了 我通常为每个会话设置相同的窗口 四个窗口 我已经设置了捕获模板并且可以捕获我想要的内容 但是 我希望所选的捕获模板在新的 第五个 窗口中打开 保留我现有的窗口 而不是捕获模式暂时将我从窗口设置中拉出来
  • 注入相同类型的多个实例 - Autofac

    我试图在构造函数中注入同一类的多个实例 然而 当它们被解析时 它们总是解析为同一个实例 这是我的注册码 public Repository Class1 class1 Class1 class2 class1 class1 class2 c
  • SQLite 中的 SELECT INTO 语句

    sqlite是否支持SELECT INTO陈述 实际上我正在尝试将数据保存在table1 into table2作为修改数据之前数据库的备份 当我尝试使用SELECT INTO陈述 SELECT INTO equipments backup
  • 如何缩放具有背景大小的 div 上的背景图像

    我想要一个 div 元素拉伸 33 宽度 背景图像用 css 完成 background image url background size cover 如何在鼠标悬停或 mouseneter 上对 div 中的背景图像进行放大动画 是否有
  • 我的 Objective-C 单例应该是什么样子? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi