Objective-C 字符串文字的预处理器宏值

2024-05-11

我在构建设置中定义了一个预处理器宏

FOO=BAR

我想将该值转换为可以传递给方法的 Objective-C 字符串文字。以下 #define 不起作用,但它应该展示我想要实现的目标:

 #define FOOLITERAL @"FOO" //want FOOLITERAL to have the value of @"BAR"

 myMethodThatTakesAnNSString(FOOLITERAL);

我希望我只是错过了一些明显的东西,但我似乎无法找到合适的预处理器巫毒来获得我需要的东西。


Use the 字符串化运算符 #从符号中生成一个 C 字符串。但是,由于预处理器的一个怪癖,您需要使用两层额外的宏:

#define FOO BAR
#define STRINGIZE(x) #x
#define STRINGIZE2(x) STRINGIZE(x)
#define FOOLITERAL @ STRINGIZE2(FOO)
// FOOLITERAL now expands to @"BAR" 

额外层的原因是字符串化运算符只能用于宏的参数,而不能用于其他标记。其次,如果宏的参数在宏主体中应用了字符串化运算符,则该参数是not扩展为另一个宏。所以,为了确保FOO被扩展,我们包装在另一个宏中,这样当STRINGIZE2扩大了,也扩大了FOO因为字符串化运算符没有出现在该宏的主体中。

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

Objective-C 字符串文字的预处理器宏值 的相关文章

  • 我无法捕获 WKWebView 的屏幕截图

    我正在尝试捕获 WKWebView 的屏幕截图 但我的方法无法正常工作 它返回纯色 就好像图层树为空一样 而它似乎适用于其他视图 UIImage screenshot UIImage screenshot UIGraphicsBeginIm
  • 检测 UITableView 中的水平平移

    我正在使用 UIPanGestureRecognizer 来识别 UITableView 中的水平滑动 准确地说是在单元格上 尽管它已添加到表格本身 然而 这个手势识别器显然窃取了桌子上的触摸 我已经让 pangesturerecogniz
  • 以编程方式更改 UISlider 的范围

    如何以编程方式设置 UISlider 的最小最大范围 例如 虚拟代码 UISlider slider UISlider alloc init slider min 3 slider max 3 EDIT 所以我有以下内容 sl minimu
  • ObjC <-> Swift 桥接和工厂方法

    我想从 Swift 使用一些 Objective C 类 由于超出了这个问题范围的原因 我的班级init方法被标记为不可用 相反 有一个工厂方法 这是我的班级的简化形式 interface MyClass NSObject instance
  • iPhone ImageView序列动画

    嘿 尝试将一个简单的 png 序列动画放入我的应用程序中 我在 IB 中放置了第一个框架 并将图形动画出口连接到它 序列中有 54 个 png 名称为 Comp 1 0000 png 到 Comp 1 00053 png 这是我的代码 vo
  • 监控剪贴板活动可可?

    是否可以在可可中 观看 用户剪贴板 例如 如果我的应用程序是系统托盘样式应用程序 例如 dropbox 客户端 我可以订阅用户在另一个应用程序中点击复制 粘贴时引发的事件吗 你可以随时查看Apple的示例代码 剪贴板查看器 http dev
  • iPhone 上的锁定方向 UIWebView

    有没有办法锁定 UIWebView 的方向 使用 Obj C JS 还是 Html 我不想有按钮或任何东西 我只想在应用程序打开时将其锁定为纵向 好像这个堆栈溢出帖子 https stackoverflow com questions 43
  • Parse 在哪里存储用户会话

    登录代码 PFUser logInWithUsernameInBackground self userTextField text password self passwordTextField text block PFUser user
  • 后台模式下的 AVSpeechSynthesizer

    我无法获取 iOS 7AVSpeechSynthesizer当我的 iOS 应用程序处于后台模式时工作 我添加了 应用程序播放音频 应用程序支持的后台模式的关键 但我仍然无法让它工作 我还研究了创建一个AVMutableCompositio
  • 有没有办法更改 UITabBar 或 UITabBarItem 中的文本位置?

    这是我打算放在屏幕上的自定义选项卡栏 然而 我的搭档希望文字稍微向上一些 我怎样才能这样做呢 为什么不为视图控制器设置一个空的标题属性 并将标题添加到选项卡的自定义图像中 UPDATE 为了回答的完整性 来自评论和ios标签栏在没有图像时将
  • 表视图未根据绑定更新

    这是一个非常新手的问题 这是我以前做过很多次的事情 但这次我遗漏了一些东西 在我的 AppDelegate h 文件中 我声明一个 NSArray 并将其设置为属性 interface AppDelegate NSObject NSArra
  • 将文件上传到 Google 云端硬盘时出错

    我已经在我的应用程序项目中实现了 Google Drive SDK 并尝试在 Google Drive 中上传图像 但出现错误 我的代码来自Here https developers google com drive quickstart
  • 在 Swift 3 中以编程方式创建没有 XIB 的 NSViewController

    我正在尝试在不使用 Interface Builder 的情况下制作 macOS 应用程序 我的项目已构建并运行 但我的主视图控制器似乎没有加载其视图 那就是viewDidLoad 方法未被调用 我正在使用 Xcode beta 8 0 b
  • NSArray 中不重复的所有可能组合

    假设我有一个包含 3 个数字的数组 NSArray array 1 2 3 我想进行所有组合而不重复 所以我需要的是这样的 1 2 3 1 2 2 3 1 3 1 2 3 我当前的代码是这样的 NSArray array 1 2 3 int
  • 如何将 AFNetworking 2 与摘要式身份验证结合使用

    我一直在搜索 AFNetworking 2 with Digest Authentication 一段时间 但没有找到关于它的有用讨论 除了this one https github com AFNetworking AFNetworkin
  • Xcode 愚蠢警告:视图正在裁剪其内容

    我在 Xcode 4 中收到这个愚蠢的警告 Clipped Content View is clipping its content 如果我创建一个无边框斜角按钮 其图像大于按钮本身 为什么 我怎样才能抑制它 我也遇到了类似的灰色警告问题
  • 外观代理 - iOS 5 的 setShadowImage 替代品?

    您好 我正在使用此代码来设置导航栏的阴影图像 if self navigationController navigationBar respondsToSelector selector shadowImage UINavigationBa
  • 验证 iOS 应用程序时出现 com.apple.developer.linked-domains 问题

    当我在 Xcode 中使用 Organizer 验证我的项目时 出现以下错误 无效的代码签名权利 你的申请包的签名包含代码签名权利iOS 上不支持的 具体来说 值 for key com apple developer associated
  • 如何在 Objective C 类中设置布尔类型属性

    如何在 Objective C 类中使用布尔属性 我是这样做的 property nonatomic copy BOOL locationUseBool 但它给出了错误 具有 复制 属性的属性必须是对象类型 正确的申报方式是什么 您也可以这
  • Objective C“#if”语法

    我对 如果 或 如果 有点困惑 if当我查看一些类时我看到的语法 例如 if someConstant someNumber do something elif etc versus if someConstant someNumber d

随机推荐