Objective c 在Xcode 4.5中添加常量

Objective c 在Xcode 4.5中添加常量,objective-c,xcode,Objective C,Xcode,我有一个存储常量的类 因此,有两个文件调用Constant.h和Constant.m 这是我在.h文件中的内容: #import <Foundation/Foundation.h> enum kParams { kFirstName = 0, kLastName = 1 }; extern NSString * const kNotificationUpdateMainMenu; 这是第一次它工作得很好,但当我尝试添加一些其他常量(例如Knotification

我有一个存储常量的类

因此,有两个文件调用Constant.h和Constant.m

这是我在.h文件中的内容:

#import <Foundation/Foundation.h>

enum kParams {
    kFirstName = 0,
    kLastName = 1
};

extern NSString * const kNotificationUpdateMainMenu;
这是第一次它工作得很好,但当我尝试添加一些其他常量(例如KnotificationFBLoginsuccess)时,其他类看不到它

这是一条信息,告诉我我有什么问题。但是如果没有这个问题,我不理解我的其他常量是如何工作的(只是我添加的新常量会得到这个错误)

我找到了一些解决方法:

  • 开放式组织者
  • 清除派生数据
  • 删除project.xcworkspace文件和xcuserdata
  • 关闭项目
  • 重新启动Xcode
但正如我所认为的,有太多的运算,我可以加一个常数。为什么?

您的“全局”常量实际上不是外部的(单独编译,稍后链接在一起)。以简单的方式退出并放置
NSString*const kNotificationUpdateMainMenu=@“kNotificationUpdateMainMenu”编码到头文件中。方法文件不需要任何东西


我将使用
#define kNotificationUpdateMainMenu@“kNotificationUpdateMainMenu”
执行拼写检查。编译器将为整个编译创建常量字符串的一个共享实例。

我们的做法有些不同。我们使用的是#define marcos和一个.h文件(只是一个头文件)——工作非常顺利。是的,define宏非常好,但它不能解决数据类型的问题(例如,如果我使用string或int或其他东西)。在我的例子中,所有的外部常量都工作得很好,但是当我试图增加更多的成本时,我得到了这个错误。但是我想知道,因为其他常量工作得很好,Xcode解析器认为它没有任何问题。你是说把“Success”拼写为“successs”吗?可能是您的问题?是的,这是一个错误,但我有例如KnotificationFBLoginsuccsessss,即使有错误,但没有问题,因为我可以为变量提供任何名称。我的问题是为什么解析器不能工作。你们知道它定义了字符串和整数的工作,对吗?
#import "Constants.h"

NSString * const kNotificationUpdateMainMenu = @"kNotificationUpdateMainMenu";
/Users/developer/Documents/Projects/Test/Test/Test/AppDelegate.m:121:64: Use of undeclared identifier 'kNotificationFbLoginSuccsess'