【问题标题】:'Expected Identifier' error on typedef line:typedef 行上的“预期标识符”错误:
【发布时间】:2023-03-15 14:36:01
【问题描述】:

我有这段代码:

#import <Foundation/Foundation.h>
@class Completions;

typedef enum inputSource { KEY_TYPE = 0, WORD_SELECTION = 1, MOVEMENT = 3, BACKSPACE = 4 } InputSource;
...

由于某种原因,我在线收到错误消息:

`typedef enum inputSource { KEY_TYPE = 0, WORD_SELECTION = 1, MOVEMENT = 3, BACKSPACE = 4 } InputSource`;

这里有什么问题?

【问题讨论】:

  • 如果不解决您的核心问题,为什么不使用 ,即 #define Key_Type 0 ?
  • 使用#define 通常不是最好的解决方案,因为编译器没有类型检查。
  • 令人惊讶的是,即使使用inputSource,上面的代码也没有问题。您能否向我们提供有关错误消息的更多信息?
  • @YuchenZhong,我这边的问题原因我已经给出了答案,谢谢帮助。

标签: ios objective-c xcode enums typedef


【解决方案1】:

使用:typedef enum { KEY_TYPE = 0, WORD_SELECTION = 1, MOVEMENT = 3, BACKSPACE = 4 } InputSource;

你不需要inputSource

或者更好的是,使用新的 Objective-C 风格:

typedef NS_ENUM(NSInteger, InputSource) {
    KEY_TYPE = 0,
    WORD_SELECTION = 1,
    MOVEMENT = 3,
    BACKSPACE = 4
};

【讨论】:

    【解决方案2】:

    问题的原因是 xcode Developer 库中的 iPhoneSimulator.platform 文件夹是我项目的一部分。

    此项目中有一个名为 BACKSPACE 的参数,显然这两个参数之间存在某种冲突。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多