将 nsstring 转换为宏(#define)[重复]

Posted

技术标签:

【中文标题】将 nsstring 转换为宏(#define)[重复]【英文标题】:Converting nsstring to macro (#define) [duplicate] 【发布时间】:2014-11-04 12:02:02 【问题描述】:

我从服务器收到以下 JSON:


   .....
   "id":"predifined_id",
   ...

在代码中,我有一个 predifined_id 的 int 定义:

#define predifined_id   5

这意味着如果我在代码中使用 predifined_id 它将被转换为 int = 5。

在解析 JSON 时如何获取此值 (5)?

我已将 JSON 转换为 NSDictionary,但我收到的 @"id" 键值是 NSString

【问题讨论】:

你为什么不直接#define predefined_id @"5" 只用于编译器时的宏,你不能在运行时处理它们——它们只是在运行时不存在。 @holex 感谢您的解释 @l0gg3r,完全不同的问题 @Paulw11,解析 JSON 时,predefined_id 仍然不会被识别为宏。它只是一个 NSString 【参考方案1】:

在我的代码中我使用这个:

NSInteger integerValue = [dict[@"id"] integerValue];

【讨论】:

【参考方案2】:

你可以简单地将它定义为字符串

#define predifined_id  @"5"

或稍后转换:

[NSString stringWithFormat:@"%d",predefined_id]

【讨论】:

以上是关于将 nsstring 转换为宏(#define)[重复]的主要内容,如果未能解决你的问题,请参考以下文章

将 println 设为宏有啥好处?

将 NSData 转换为 NSString 后如何将 NSString 转换回 NSData?

将NSString转换成UTF8编码的NSString

将 NSString 转换为具有日期格式的 NSString 块

将 'NSString *' 转换为 'CTStringRef *' 的不兼容类型

如何将 NSUInteger 转换为 NSString?