Objective-C 单例对象和全局变量

2023-11-30

我知道有关此主题的其他帖子,但我实际上只是从新手的阶梯上爬升的一个人,所以需要更多帮助。

我的 iPhone 应用程序有几个全局变量 - 其中一些变量是我在类中声明并给定值的,但其他变量需要在登录过程中设置(例如令牌),然后需要可以从任何类访问应用程序的生命周期或方法。有人告诉我,我真的应该使用 Singleton 对象来完成所有这一切,我认为它是一个在启动时实例化的类。如果是这样,有人可以给我此类标头和实现文件的最简单示例以及我应该如何/在哪里实例化它?然后我需要一些从一开始就设置的字符串和其他可以稍后设置/获取的字符串?

首先十分感谢。另外,我是新来的,所以如果我的礼仪有任何问题,请告诉我。

Thanks,


此链接显示了一些创建单例类的代码:http://www.galloway.me.uk/tutorials/singleton-classes/

你会这样使用它:

[[MyManager sharedManager] doSomething];

对sharedManager的调用将获取该类的一个实例(或者,如果这是您第一次调用它,则会创建它) - 这确保您只有其中一个:)

它还会覆盖release、retain、autorelease等,以确保你不会意外地错误地删除sharedManager!

该类将在您第一次使用它时实例化自己,但如果您需要在启动时创建它,只需调用[MyManager sharedManager]它会为你创建它。

您可以像任何其他 Objective-C 类一样定义该类 - 只需添加属性等

希望有帮助:)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Objective-C 单例对象和全局变量 的相关文章

随机推荐

  • Chrome 在没有任何用户交互的情况下立即消除确认()提示

    我们网站的一些用户报告说confirm对话框出现 但立即消失 就好像它们被自动关闭一样 这似乎只影响 Chrome 而不影响其他浏览器 甚至 Chromium 搜索类似问题发现很多人都在抱怨confirm里面的对话onbeforeunloa
  • NSMutableDictionary setObject:forKey: 无法添加密钥

    我确信我在尝试编写的一个小型iPhone程序中遗漏了一些东西 但是代码很简单并且编译时没有任何错误 所以我无法看出错误在哪里 我设置了一个 NSMutableDictionary 来存储学生的属性 每个属性都有一个唯一的键 在头文件中 我声
  • 如何自定义 git 的合并提交消息?

    每次进行合并时 我都需要生成合并提交 并且我希望它不仅仅是所有提交的摘要 我的问题是如何格式化 git fmt merge msg 或决定此自动消息的因素 我可以在提交后通过修改并使用 git log pretty format 手动执行此
  • Jetty '{servlet}/{parameter}' url 路由

    我使用的是码头9 0 3 如何将 www myweb com servlet parameter 等 URL 映射到给定的 servlet 和参数 例如 URL client 12312 将路由到 clientServlet 及其doGet
  • 如何解决返回对象的映射中的待处理承诺?

    这将解决所有承诺 const promises files map filename gt getPdfToPrint output outputDirectory filename replace const res await Prom
  • 查找mysql中整数的排名[重复]

    这个问题在这里已经有答案了 可能的重复 Mysql排名函数 我有以下国家 地区表 country clicks 0 222 66 34 175 1000 45 650 我如何获得 45 个国家 地区的排名 在本例中为 2 订购country
  • 在 driver=new ChromeDriver(); 行上获取“InitationTargetException”异常;

    我正在打开 Chrome 浏览器 并收到异常 InvocationTargetException 几天前代码运行正常 这是我的代码 System setProperty webdriver chrome driver D Automatio
  • 获取数组的所有组合

    我目前正在尝试创建一个函数来获取数组值的所有可能组合 我想出了一个非函数版本 但它仅限于 3 个值 所以我试图用它来创建一个函数 使其变得更强大Dynamic 我尝试搜索 但找不到我想要做的 powershell 示例 我可以找到 PHP
  • 如何从java中的JSONObject获取所有键/子键?

    这是我的 JSONObject per page 3 total 12 data color 98B2D1 year 2000 name cerulean id 1 pantone value 15 4020 color C74375 ye
  • 堆栈中的动态数组?

    它是否正确 这是用 g 3 4 成功编译的 int main int x 12 char pz x 这是所有其他问题的组合答案 你现在的代码是not标准C 它is标准C99 这是因为 C99 允许您以这种方式动态声明数组 澄清一下 这也是标
  • 五个按钮保持等距圆周旋转

    我想在半径为 100 的圆 以 120 120 为中心的圆 实际上是正方形视图的中心 即 240 240 的圆周上旋转五个按钮 是否可以这样做 与按钮进行交互它们是旋转的且外观正确 我努力了 x round cx redious cos a
  • Nullable 和 Int32 类型之间未定义 Equal

    我正在编写一个无聊的应用程序来管理患者及其临床病史 我将 SQLite 与 DbLinq 库和 DbMetal 代码生成实用程序结合使用 以下是从底层数据库中提取的生成代码中的两个类 Table Name main Patients pub
  • 比较两个图像以检查它们是否相同

    我有一个带有 ImageView 的配置文件视图 用户可以在其中更改他们的图片 我正在保存我的新旧图像以进行比较 我想知道它们是否相同 所以如果是 我不需要将新的推送到我的服务器 我尝试了这个 但它并没有真正起作用 NSData retur
  • 为 tomcat jndi 连接到 postgresql 提供证书

    我想使用 jndi 从 tomcat 中的 servlet 连接到 postgresql 服务器 我已使用将服务器证书添加到信任库中keytool keystore usr lib jvm java 11 openjdk amd64 lib
  • 跨域资源共享 GET:“拒绝从响应中获取不安全标头“etag””

    没有自定义标头的简单 GET 请求 响应按预期返回 正文中的数据是可访问的 但标头则不可访问 当我尝试访问 etag 标头时 浏览器引发异常 拒绝获取不安全标头 etag Chrome Safari 和 Firefox 的行为都是相同的 我
  • 来自networkx的g.nodes()不能与random.choice()一起使用

    我正在尝试在随机节点之间生成随机边 但是代码行ab choice G nodes 正在产生错误 import networkx as nx import matplotlib pyplot as plt from random import
  • 如何将 PHP 变量传递给 Angular js?

    我有一个页面 我在 Angular JS 中进行逆向工程 所有内容都通过 PHP 脚本进行回显 我知道这是不好的做法 但我正在慢慢使用 Angular 只是想将其用于 onBlur 事件 我试图弄清楚如何将变量从 PHP 传递到 Angul
  • 简化 Prolog 中的表达式

    我想问一下如何简化表达式 例如 1 2 a 5 0 b c 0 3 a 5 特别是如何在列表中分离这些表达式 这在 Prolog 中实际上很有趣 因为你不需要做任何太神奇的事情就可以让它工作 X Y 1 2 a 5 0 b c 0 X 1
  • 如何在C语言中解读一个单词并在txt文件中找到它的所有匹配项?

    因此 给定一个最多 7 个字母的字符串 我需要找到该字符串的每个排列 包含和不包含所有字母 然后检查是否可以在我的dictionary txt 文件中找到这些排列中的任何一个 并打印那些排列匹配 所以基本上 如果用户输入 try 排列将是
  • Objective-C 单例对象和全局变量

    我知道有关此主题的其他帖子 但我实际上只是从新手的阶梯上爬升的一个人 所以需要更多帮助 我的 iPhone 应用程序有几个全局变量 其中一些变量是我在类中声明并给定值的 但其他变量需要在登录过程中设置 例如令牌 然后需要可以从任何类访问应用