我有一个用于存储常量的类。
因此,有两个文件调用Constant.h和Constant.m
这就是我在.h文件中的内容:
#import <Foundation/Foundation.h>
enum kParams {
kFirstName = 0,
kLastName = 1
};
extern NSString * const kNotificationUpdateMainMenu;
这就是我在.m文件中的内容:
#import "Constants.h"
NSString * const kNotificationUpdateMainMenu = @"kNotificationUpdateMainMenu";
第一次它运行良好,但是当我尝试添加一些其他const(例如kNotificationFbLoginSuccsess)时,其他类看不到它。
这是一条消息,告诉我我遇到了哪些问题。但是我不明白我的其他常量如何在没有这个问题的情况下工作(我添加的新常量会得到这个错误)。
/Users/developer/Documents/Projects/Test/Test/Test/AppDelegate.m:121:64: Use of undeclared identifier 'kNotificationFbLoginSuccsess'
我找到了一些解决方法:
但是我认为操作太多,我可以添加一个常量。怎么样?
答案 0 :(得分:1)
您的“全局”常量实际上不是外部的(单独编译,后来链接在一起)。轻松一点,将NSString * const kNotificationUpdateMainMenu = @"kNotificationUpdateMainMenu";
放入头文件中。方法文件不需要任何内容。
我会使用#define kNotificationUpdateMainMenu @"kNotificationUpdateMainMenu"
来执行拼写检查。编译器将为整个编译创建一个常量字符串的共享实例。