我正在为xcode项目添加跟踪功能。在我的ViewController.m中,我为已经声明的变量“使用未声明的标识符”收到错误。
ViewController.m中的
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
self.analyticsViewEventBundle = [[AnalyticsController sharedAnalyticsController] publishScreenLoadStartedWithScreenName:AnalyticsControllerScreenName_ScreenStyle existingViewEventBundle:self.analyticsViewEventBundle];
}
以上生成use of undeclared identifier 'AnalyticsControllerScreenName_ScreenStyle'
。但是,如果我将该片段更改为AnalyticsControllerScreenName_MyStore
则没有错误。
如果我搜索XCode,我会看到两行在正确的AnalyticsController.m文件中彼此相邻。这是一个例子:
typedef NS_ENUM(NSInteger, AnalyticsControllerScreenName) {
AnalyticsControllerScreenName_MyStore,
AnalyticsControllerScreenName_ScreenStyle,
};
我需要做些什么才能使用AnalyticsControllerScreenName_ScreenStyle
?
更新:
我删除了逗号,但仍然收到错误。
typedef NS_ENUM(NSInteger, AnalyticsControllerScreenName) {
AnalyticsControllerScreenName_MyStore,
AnalyticsControllerScreenName_ScreenStyle
};
更新 问题最终是我的AnalyticsController的两个副本以某种方式加载到项目中,而Target导航器中不可见的是正在使用的那个。我删除了该文件,清理并构建了一切,之后一切正常。
答案 0 :(得分:2)
在AnalyticsControllerScreenName_ScreenStyle之后删除逗号。
试试这个,它对我有用
typedef enum{
AnalyticsControllerScreenName_MyStore,
AnalyticsControllerScreenName_ScreenStyle
} AnalyticsControllerScreenName;
答案 1 :(得分:-1)
您的枚举被定义为
typedef NS_ENUM(NSInteger, AnalyticsControllerScreenName) {
AnalyticsControllerScreenName_MyStore,
AnalyticsControllerScreenName_ScreenStyle,
};
问题是AnalyticsControllerScreenName_ScreenStyle
之后的逗号告诉编译器将指定另一个元素,但是你没有提供一个元素。要解决此问题,请执行以下操作:
typedef NS_ENUM(NSInteger, AnalyticsControllerScreenName) {
AnalyticsControllerScreenName_MyStore,
AnalyticsControllerScreenName_ScreenStyle
};