Objective C 带有 case/switch 的全局常量

2024-01-25

有没有办法在 Objective C 中使用在 case/switch 语句中工作的全局 int 常量?这里的技术(http://stackoverflow.com/questions/538996/constants-in-objective-c)让我可以访问任何地方的常量,但不允许我将它们放入 switch 语句中。

in .h

FOUNDATION_EXPORT const int UNIT_IDLE;
FOUNDATION_EXPORT const int UNIT_DEFEND;

in .m

int const UNIT_IDLE = 0;
int const UNIT_DEFEND = 1;

错误是“表达式不是整数常量表达式”


当使用将在 switch 语句中使用的常量时,我​​通常将枚举与 typedef 语句一起使用。

例如,这将位于共享 .h 文件中,例如 ProjectEnums.h:

enum my_custom_unit
{
    MyCustomUnitIdle    = 1,
    MyCustomUnitDefend  = 2
};
typedef enum my_custom_unit MyCustomUnit;

然后,我可以在 .c、.m、.cpp 文件中使用类似于以下 switch 语句的代码:

#import "ProjectEnums.h"

- (void) useUnit:(MyCustomUnit)unit
{
    switch(unit)
    {
        case MyCustomUnitIdle:
        /* do something */
        break;

        case MyCustomUnitDefend:
        /* do something else */
        break;

        default:
        /* do some default thing for unknown unit */
        break;
    };
    return;
};

这还允许编译器在编译时验证传递给方法并在 switch 语句中使用的数据。

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

Objective C 带有 case/switch 的全局常量 的相关文章

  • ios 8 核心数据崩溃

    保存时 CoreData 发生崩溃 2014 09 16 09 51 58 273 My app 2678 105246 Terminating app due to uncaught exception NSInvalidArgument
  • 使用 JavaScript 从 URL 变量读取来加载不同的 CSS 样式表

    我试图在我的 WordPress 博客上使用两个不同的样式表 以便在通过 Web 访问页面时使用一个样式表 而在通过我们的 iOS 应用程序访问博客内容时使用另一个样式表 现在 我们将 app true 附加到来自 iOS 应用程序的 UR
  • Swift 数组设置索引值不起作用

    我有一个方法 下面的内容 其中queue2只是一个 Int 我打印了很多东西 看看一切是否都正常 public func cool item Int println item println back queue2 insert item
  • 使用 Objective-C 在 iPhone 应用程序中显示或隐藏 UIButton

    我在用UITextView编辑文本 我想用两个UIButtons编辑并保存 最初我想显示编辑UIButton 当用户单击编辑时我想显示保存UIButton 当内容成功保存后 我不想再显示保存按钮 我是一名 C 编码员 在 C 中我曾经这样做
  • iOS 4.2.1 丢失文件?

    这是我第一次使用最新的 xcode 3 2 5 和新的 iOS 4 2 1 当我在设备上运行应用程序时 我收到以下运行时错误 无法读取 Developer Platforms iPhoneOS platform DeviceSupport
  • 使用 UIImagePickerController 的应用程序在拍照后选择“使用照片”时冻结

    我现在正在开发一个简单的照片和视频捕获应用程序 该应用程序成功地允许用户按下按钮即可拍摄照片或视频 但是 一旦您完成拍摄照片或视频 它就会提供 2 个选项 重新拍摄 和 使用照片 或 使用视频 具体取决于您使用的选项 如果用户点击 重新拍摄
  • iOS:从非图像数据生成图像(Godus,如风景)

    所以看到图像后Godus http www kickstarter com projects 22cans project godus我想知道如何生成简单的 非交互式的 2D 图像 with 不同高度或层数的颜色不同就像下面的图片一样 我只
  • 尝试从独立的 Apple Watch 应用发出网络请求

    当应用程序是独立应用程序时 Apple Watch 是否无法进行网络通话 即使手表已连接到 iPhone 我正在使用新的独立应用程序目标 它没有附带可以发出 WatchConnectivity 请求的配对 iOS 应用程序 我十有八九收到
  • UIBezierPath 的起始和结束角度?

    我在 iOS 中使用如下代码编写了半圆UI贝塞尔路径 and CAShape层 clockWiseLayer CAShapeLayer alloc init CGFloat startAngle M PI 2 CGFloat endAngl
  • iOS 内存警告

    我正在尝试使用从 Parse 数据库下载的图像填充集合视图 但我收到内存警告 然后偶尔崩溃 有谁知道其他应用程序如何设法呈现这么多图像而不崩溃 有人可以告诉我如何优化我已有的东西吗 这是所有相关代码 https gist github co
  • 为了支持 iPhone 5 的更长屏幕,需要检查什么? [复制]

    这个问题在这里已经有答案了 可能的重复 iPhone 5屏幕尺寸如何处理 https stackoverflow com questions 12396545 how to deal with iphone 5 screen size iP
  • swift 中的负数模

    负数模如何在 swift 中工作 当我执行 1 3 时 它给出 1 但余数是 2 其中有什么问题 雨燕余数运算符 计算余数 整数除法 a b a a b b where 是截断整数除法 在你的情况下 1 3 1 1 3 3 1 0 3 1
  • 如何使用自签名证书为 TLS 创建 iOS NWConnection?

    我正在尝试将 Apple 的新 NWConnection 类用于我的 MQTT 客户端 为了进行测试 我需要能够创建到本地测试代理的 TLS 连接 该代理具有自签名证书 到目前为止 我只是使用以下命令设置连接 self connection
  • 如果 NSExtensionActivationRule 设置为仅音频,则共享扩展不会出现在有功能的应用程序中

    我正在尝试创建一个共享扩展 用户可以从任何有能力的应用程序上传她的录音 该文档甚至有一个简单的示例 请参阅声明共享或操作扩展支持的数据类型 https developer apple com library content document
  • 维护 UISegmentedControl 中的选择

    我可以保持 UISegmentViewControl 段的选定状态吗 即 即使用户选择了另一个段 也可以保持一个段显示为选中状态 我似乎在任何地方都找不到任何可以做到这一点的东西 这是不可能开箱即用的 看如何才能选择 UISegmented
  • UIImage:如何获取网站选项卡图标

    我正在开发一个 RSS 阅读器 我需要获取每个提要的图标 例如 如果我的提要是 google com 我想获取 G 图标并将其放入 UIImage 或其他内容中 关于如何实现这一目标有什么想法吗 最简单的方法是使用 Google NSStr
  • iPhone SDK - 在后台线程中运行重复进程

    我有一个iPhone我想在其中每隔一段时间在后台执行一个方法的应用程序1第二 所以在我的主线程中 我有以下代码UIViewController viewDidLoad NSTimer timerWithTimeInterval 1 0 ta
  • Swift 中 UIImages 的淡入淡出动画

    我有一组图像 我希望它们在登录屏幕的背景中淡出 我无法在 swift 中找到任何可以做到这一点的东西 有什么办法我可以做到吗 这是我当前的代码 override func viewDidLoad super viewDidLoad star
  • 播放(非库)Apple Music 内容 - 请求失败

    我正在尝试使用以下代码播放专辑 let predicate MPMediaPropertyPredicate value 1459938538 forProperty MPMediaItemPropertyAlbumPersistentID
  • 当设置 setVisibleXRangeMaximum 时,iOS-Charts X 轴值无限重复

    我正在尝试绘制一个图表 其中 x 轴是TimeIntervalY 轴是power consumption 由于每天都会有数据 因此将有太多数据无法显示 因此 我想一次显示 5 个值 我通过设置实现了这一点self chart setVisi

随机推荐

  • 在具有完整日历功能的事件框中设置每种不同的颜色

    我在完整日历功能中设置每个事件框中的颜色时遇到问题 目前 我只能在 fc daygrid event dot 中设置 我可以知道如何设置每个事件框中的背景颜色吗 下面是我的编码 document addEventListener DOMCo
  • PyGame-角色离开屏幕

    我正在尝试用 pygame 制作游戏 但我不知道如何防止我的角色离开屏幕 设置限制 我有一个由用户输入控制的 png 图像 但角色可能会正常离开可见屏幕区域 我不知道该怎么做 我在窗户周围画了一个矩形 pygame draw rect 但我
  • 如何从 Java 中的 .dat 文件中读取一行,然后需要将其分隔开?

    我正在尝试在 TextPad 中使用 Java 读取 dat 文件 dat 文件有多行代码 但每一行都有单独的信息 我的主方法和对象类中的不同方法需要这些信息 如何分离文件中提供的信息并将单独的部分输入到我的任何类中 我知道如何从 t xt
  • 处理空的 UITableView。打印友好消息

    我有一个 UITableView 在某些情况下 为空是合法的 所以而不是显示 应用程序的背景图像 我更愿意在屏幕上打印一条友好的消息 例如 该列表现在为空 最简单的方法是什么 UITableView 的backgroundView 属性是你
  • Jquery - 如果页面已加载

    是否有任何技巧如何在 javascript 中启动一个函数 该函数在页面完全加载时启动 如果您指的是 HTML 文档加载后 请使用ready event document ready function 或者简写 function 如果您的意
  • 提交消息正文中是否允许使用特殊字符?

    我在提交消息的正文中使用了特殊字符 例如 和或 这是允许的还是我应该仅使用文本 我没有找到真正的 answear 而且我不想弄乱我的 github 历史记录 所以 answear 真的会帮助我 git 提交消息中唯一不允许的字符是 NUL
  • Android AltBeacon库:如何找到信标布局?

    我正在使用一种新型信标进行测试 这是我从调试中得到的结果 onScanResult ScanResult mDevice 20 73 2A 09 3E 41 mScanRecord ScanRecord mAdvertiseFlags 26
  • 如何重建表以释放已删除的旧列所使用的空间

    我有一个 MSSQL 聚集索引 我想重建它 因为我删除了一些列并且我想释放空间 在文献中 我读到 对于堆 你可以写 ALTER TABLE myHeap REBUILD 对于聚集索引 ALTER INDEX IX myIndex ON my
  • 如何连接到 LocalDb

    我使用 SqlLocalDb msi 包安装了 LocalDb 并且可以使用服务器名称使用 SSMS 连接到它 LocalDb v11 0 到目前为止 一切都很好 问题是 当我尝试通过 NET 4 5 应用程序连接到它时 出现错误 服务器未
  • 将动态创建的行中的数据保存到数据库

    我正在使用 Codeigniter 我创建了一个包含不同列的表 我想在单击 按钮时动态创建行 现在我可以使用 jquery 创建行 我想将数据保存到数据库中 当我单击 按钮时 如何将每行的值保存到数据库中 您可以对此使用ajax请求 首先当
  • 如何让在一个进程上运行的参与者向在单独进程上运行的另一个参与者发送消息?

    我想让运行在不同进程 或节点 上的参与者向运行在不同进程 或节点 上的其他参与者发送消息 同时保持容错和负载平衡 我目前正在尝试使用 Akka Cluster 的分片功能来完成此任务 但是 我不确定如何实现这一点 我有以下反映我的种子节点的
  • 致命错误:对 Swift 类使用未实现的初始化程序“init()”

    我正在使用 Markdown TextView 1 将基本 Markdown 添加到UITextView The TextView是一个子类MarkdownTextView 但是 当使用复制和粘贴时 出现以下错误 致命错误 对类使用未实现的
  • Unix 上的递归 mkdir() 系统调用

    阅读具有该名称的 Unix 系统调用的 mkdir 2 手册页后 该调用似乎不会在路径中创建中间目录 而只会在路径中创建最后一个目录 有没有什么方法 或其他函数 可以创建路径中的所有目录 而无需手动解析我的目录字符串并单独创建每个目录 不幸
  • powershell远程处理:非常慢

    如果我从solaris服务器ssh到美国服务器 ssh连接速度非常快 比如删除一个文件很快就能完成 但是为什么powershell远程处理这么慢 我进入远程会话后 然后删除一个项目 需要10多秒才能完成 Enter PSSession co
  • 带有存储枚举的条件枚举开关

    我希望这段代码能够工作 我有一个枚举 其中 Direction Right 的情况采用距离参数 enum Direction case Up case Down case Left case Right distance Int 现在另一个
  • Angular 中 ViewEncapsulation.None 的禁用效果

    如何禁用ViewEncapsulation None的效果 例如 我的一个组件 firstComponent 定义了一个带有一些属性的CSS类 第二个组件使用相同的 css 类 我希望我的 secondComponent 对第一个组件样式表
  • 使用发布/订阅时交互按钮无法正常工作

    我正在用 C 编写一个使用 pub sub 的环聊聊天机器人 这样我就可以在防火墙的一侧托管该机器人 除了卡片内的交互式按钮之外 一切似乎都运行良好 如果我创建具有特定操作方法名称的按钮 机器人会收到具有适当操作方法名称的 CARD CLI
  • 如何打开本地文件系统(Cordova)中的PDF文件?

    我一直在查看这些条目 Link 1 https stackoverflow com questions 16795172 phonegap inappbrowser display pdf 2 7 0 Link 2 https stacko
  • 使用 jdbc 连接访问在 MSSQL 服务器中的 dbo 中创建的表

    我使用以下代码通过java连接MSSQL服务器 Connection conn DriverManager getConnection jdbc sqlserver localhost 1433 DATABASENAME instanceN
  • Objective C 带有 case/switch 的全局常量

    有没有办法在 Objective C 中使用在 case switch 语句中工作的全局 int 常量 这里的技术 http stackoverflow com questions 538996 constants in objective