创建常量字典对象

2023-11-23

我想完成一些类似于这篇文章中所做的事情:Objective-C 中的常量

但是,我想构造一个 NSDictionary。

如果我做类似的事情:

常量.h

extern NSArray *const mFooKeys;
extern NSArray *const mFooObjects;
extern NSDictionary *const mFooDictionary;

常数.m

NSArray *const mFooKeys = [[NSArray alloc] initWithObjects: 
                                   @"Foo", @"Bar", @"Baz", nil];
NSArray *const mFooObjects = [[NSArray alloc] initWithObjects: 
                                   @"1", @"2", @"3", nil];
NSDictionary *const mFooDictionary = [[NSDictionary alloc] dictionaryWithObjects:mFooObjects 
                                                                         forKeys:mFooKeys]; 

我是否在 dealloc 中释放并且一切都很好,还是还有更多的事情?这更像是一个谨慎的问题,而不是“出了什么问题”的问题,但我觉得我真的可能在没有意识到的情况下把事情搞砸。


为了有一个像这样的常数NSDictionary基于其他核心数据类型,您需要将其包含在将使用该常量的类中,或者创建一个单例类并存储NSDictionary那里。只有一些类类型在您正在查看的实现中不起作用;您正在查找的常量代码需要用作对象才能正常工作,但我认为这违背了目的。我不清楚在简单常量实现中你能做什么和不能做什么的决定因素是什么,但我遇到了同样的问题,单例设计模式对我来说非常适合。 (无论哪种方式,你应该dealloc即使它们在应用程序的整个生命周期中都存在。)

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

创建常量字典对象 的相关文章

  • Swift try inside Objective-C 块

    我需要创建一个函数foo它接受一个抛出闭包作为参数 我可以使用 Swift 或 ObjC 来实现它 但我需要能够从两者中调用它 像这样 Swift func bar throws func foo block throws gt void
  • 如何本地化 iOS 故事板

    我有一个包含一些视图的 iPhone 故事板 例如 导航项标题名为News 应翻译为其他语言 当我向故事板添加新的本地化版本时 它会为新语言创建当前故事板的副本 在这里我可以更改导航项的标题 但对我来说它似乎不太有用 如果我的故事板包含 1
  • 为什么 iPhone 应用程序的 main() 函数没有机会完成?

    考虑以下main 大多数 iPhone 应用程序都采用以下方法 int main int argc char argv NSAutoreleasePool pool NSAutoreleasePool alloc init int retV
  • 如何使用 didMoveToView 作为 initWithSize ?

    我将 Xcode 更新到版本 6 从那时起 我就无法使用以前在 Xcode 5 中使用 Objective C 编写的代码了 有一些新文件 GameScene h 和 GameScene m 以及 GameScene sks 而不是 MyS
  • 按升序对 NSDictionary 进行排序

    我正在尝试排序NSDictionary按升序排列 我正在使用这段代码 NSDictionary valDict self mGetDataDict key rowKey for NSString valueKey in valDict al
  • 使用标识符启动 iPhone 应用程序

    我正在尝试在我的应用程序中启动应用程序 例如 如果我按下 testApp1 中的按钮 它应该打开 testApp2 有没有办法用应用程序标识符来做到这一点 我听说过一种名为的未记录方法launchApplicationWithIdentif
  • 自动生成的 Swift 桥接标头中“找不到接口声明”

    我当前的项目包含 Swift 和 Objective C 代码 两种类型的源文件都使用另一种语言的代码 当我进行完全清理并重新编译时 几乎每个 Swift 类声明都出现错误Module Swift h 形式为 Cannot find int
  • 如何在 C# Designer.cs 代码中使用常量字符串?

    如何在 designer cs 文件中引用常量字符串 一个直接的答案是在我的 cs 文件中创建一个私有字符串变量 然后编辑 Designer cs 文件以使用此变量 而不是对字符串进行硬编码 但设计者不喜欢这样抛出错误 我明白为什么这行不通
  • 动态更新 UIAlertView 消息和换行符问题

    我需要在 UIAlertView 的消息中显示多行文本 我尝试过添加 n 但没有效果 它仍然显示 这是一个示例 但是 如果我将 iPhone 切换为横向模式 它会按照我的预期显示该消息 然后 如果我切换回纵向模式 它也会正确显示 更新 经过
  • 将 NSDictionary 保存到文件有任何限制吗

    我想用下面的方法来保存NSDictionary void writeDicToFile NSDictionary dic fileName NSString fileName NSString filePath NSTemporaryDir
  • 快速从 appDelegate 中 popToRootViewController

    我试图从应用程序委托弹出到导航堆栈的根视图控制器 并且在将 obj c 中的内容转换为 swift 时遇到一些问题 obj c 中的工作原理 UINavigationController navigationController UINav
  • 在 Objective C 中断言每个对象创建都成功是必要的吗?

    我最近阅读了Apple的示例代码MVC网络 http developer apple com library ios samplecode MVCNetworking 由 Apple 开发者技术支持大师 Quinn The Eskimo 撰
  • 如何使用 UISlider 以及如何将滑块设置为特定值?

    我是第一次使用 UIslider 首先我想知道如果值的范围是 0 到 10 如何获取滑块位置的值 其次 我希望我的滑块设置为 5 个不同的值 如 1 2 3 4 5 slider should not set between the lab
  • Eddystone 信标检测问题

    以下是我使用 iPhone iOS 9 检测 Eddystone 的代码 void viewDidLoad super viewDidLoad if CLLocationManager locationServicesEnabled loc
  • Sprite Kit - 确定轻弹精灵的滑动手势矢量

    我有一个游戏 圆形物体从屏幕底部射出 我希望能够滑动它们以将它们朝我滑动的方向轻弹 我的问题是 我不知道如何计算滑动的矢量 方向 以便使圆形物体以适当的速度向正确的方向轻拂 我使用的静态矢量 5 5 需要通过滑动速度和滑动方向来计算 另外
  • 如何创建一个 NSMutableArray 并为其分配一个特定的对象?

    我刚刚开始接触 Obj C 并且希望创建一个 MKAnnotations 数组 我已经创建了名为的 MKAnnotation 类TruckLocation其中包含名称 描述 纬度和经度 这是到目前为止我所拥有的数组 NSMutableArr
  • 替代已弃用的 NSNibLoading 方法(loadNibFile:、loadNibNamed: 等)?

    我发现 NSBundle 中的 NSNibLoading 方法 NSBundle loadNibFile externalNameTable withZone NSBundle loadNibNamed owner NSBundle loa
  • UITextField 字体大小在开始或停止输入字符时发生变化

    我见过很多线程 但没有找到解决这个问题的任何具体解决方案 我使用 XIB 创建了 UITextfield 尚未以编程方式对该字段执行任何操作 一旦我开始打字 文本字段的字体就会改变 一旦我将焦点移出文本字段 并且随着键盘消失 字体大小就会减
  • 自动布局:Y 位置为两个值中的最大值

    我有一个按钮 play Button 和两个 UIView myView 1 和 myView 2 它们的位置在执行过程中可能会发生变化 我希望 playButton 的顶部比 UIView 1 的底部或 UIView 2 的底部低 10
  • 为什么我们在 @synchronized 块中传递 self ?

    我猜 synchronized 块不依赖于对象 而是依赖于线程 对吗 既然如此 我们为什么要传递 self 呢 synchronized是语言提供的用于创建同步作用域的构造 因为使用简单的全局共享互斥锁效率非常低 因此序列化每个单独的互斥锁

随机推荐

  • 名称不能以“1”字符开头,十六进制值 0x31。 2 号线,2 号位置

    在 C 应用程序中加载 XML 文件时 我得到 名称不能以 1 字符开头 十六进制值 0x31 2 号线 2 号位置 XML 标签是这样开始的
  • /tmp/tomcat-docbase 始终使用 Spring Boot JAR 创建(但不是 WAR)

    我正在从 STS 创建一个标准 Spring Boot 1 5 2 Web 项目 如果运行此应用程序 您会创建两个目录 普通的 base 目录和 tomcat docbase 目录 4096 Mar 29 10 00 tomcat 2743
  • JSON输出重音问题

    我已经搜索了大约 3 个小时 我知道有很多像这样的问题已经被问过 但在尝试输出重音字符时 我还没有找到任何适合我的问题的解决方案我的数据库上的 SELECT 查询的结果 itemsList array while row mysql fet
  • 修改图像元数据

    我正在尝试修改 JPEG 图像中包含的元数据 它可以是图像中的任何元数据 在我的示例中 我尝试更改为DateTimeDigitized财产到当前日期 我的代码似乎大部分工作 但是设置的属性被删除而不是更改 我不确定为什么会发生这种情况 谁能
  • 如何通过PHP删除文件?

    如果文件位于另一个目录中 如何使用 PHP 从服务器中删除该文件 这是我的页面布局 projects backend removeProjectData php 此文件删除了我在数据库中的所有条目 并且还应该删除相关文件 public fi
  • pandas astype 类别不起作用

    我厌倦了将列更改为catgeory使用来自的文档http pandas pydata org pandas docs stable categorical html df pd DataFrame A 1 2 3 4 5 B a b c d
  • 为什么这条 Scala 行返回一个 Unit?

    下面是一段 Scala 代码 用于对 1 到 9 之间可被 3 或 5 整除的值求和 为什么第 5 行返回 Unit 而不是 Boolean 类型 object Sample def main args Array String val a
  • Web Worker 内部的 DOM 操作

    我知道工人can t直接操作文档 但是 DOM API 方法怎么样 他们去哪儿了 例如 如果我发出一个接收 HTML 片段的请求 如果只需要解析它以便从特定节点检索一些数据 我应该做什么 绝对有no way在 Web Worker 上使用虚
  • 请求:如何禁用/绕过代理

    我收到一个网址 r requests get http myserver com 正如我在 myserver com 的 access log 中看到的 使用了客户端的系统代理 但我想完全禁用代理requests 我目前知道禁用代理的唯一方
  • 如何在android中获取当前位置的邮政编码或区号?

    我想获取我的应用程序的 Android 设备中当前位置的邮政编码 以及找到它的任何示例或片段 我尝试过地理编码器 它仅提供纬度和经度位置 那你显然没有使用它 Geocoder geocoder new Geocoder this Local
  • 有没有办法将子例程的打印输出捕获到变量,以便我可以将其发送到 stderr?

    假设我们有 sub test print testing n 如果我想将其打印到 stderr 而不是 stdout 有没有办法可以调用子例程来执行此操作 或者我可以将输出捕获到变量然后使用警告吗 我对 Perl 还很陌生 就在这里 pri
  • 如何在录制时将音频添加到视频中[连续捕获活动] [Grafika]

    我使用实现视频录制ContinuousCaptureActivity java 工作完美 现在我想在此视频中添加音频 我知道使用媒体混合器可以在视频中添加音频 但问题是我不知道如何使用MediaMuxer 另外 如果您有任何其他解决方案而无
  • R,将多行文本数据框合并到一个单元格中

    我有一个如下所示的文本数据框 gt nrow gettext df 1 3 gt gettext df gettext 1 hello 2 Good to hear back from you 3 I ve currently writte
  • git github无法推送到原点

    我可能遗漏了一些东西 但我确信我已经检查了所有内容 我分叉了一个存储库并将其克隆到我的系统上 做了一些改变 提交后 做过git push origin master it says fatal remote error You can t
  • 如何让AngularJS编译指令生成的代码?

    请帮助我 我们如何让 AngularJS 编译指令生成的代码 您甚至可以在这里找到相同的代码 http jsbin com obuqip 4 edit HTML div names 0 names 1 br div
  • 异常 android.support.multidex.MultiDexApplication 无法转换类

    我有一个问题 我的应用程序生成此异常 但我不明白 我已经在 build gradle 中实现了 multiDexEnabled Caused by java lang ClassCastException android support m
  • 将 Log4j 输出写入 HDFS

    有没有人尝试过write log4j日志档案直接地to Hadoop分布式文件系统 如果是 请回复如何实现这一点 我想我必须为它创建一个Appender 是这样吗 我的需要是以特定的时间间隔将日志写入文件 并在稍后阶段查询该数据 我建议使用
  • 从 C# 中的字符串文件路径中删除多余的反斜杠“\”

    如何转换 String path C Abc Omg Why Me into String path C Abc Omg Why Me 我的做法是首先reverse the string进而移除所有 the 直到我们得到first char
  • IntelliJ Idea 中无副作用方法的未使用结果的警告

    当我不分配结果时BigDecimal divide 方法到变量时 我从 IntelliJ Idea 收到了一个很好的警告 BigDecimal divide 的结果被忽略 我可以以某种方式为我自己的 无副作用 函数获得相同的警告吗 比如为我
  • 创建常量字典对象

    我想完成一些类似于这篇文章中所做的事情 Objective C 中的常量 但是 我想构造一个 NSDictionary 如果我做类似的事情 常量 h extern NSArray const mFooKeys extern NSArray