Objective c 目标C#输入混淆

Objective c 目标C#输入混淆,objective-c,Objective C,对于Objective-C中的#import语句,我仍然有点困惑。我有一个头文件(Common.h),其中保存了一些在整个应用程序中使用的常量字符串。到目前为止,我已经在两个类中使用了#import“Common.h”,我得到了一个构建错误: duplicate symbol _EX_XML_URL in /Users/username/Library/Developer/Xcode/DerivedData/projectname-ffvcivanbwwtrudifbcjntmoopbo/Bui

对于Objective-C中的
#import
语句,我仍然有点困惑。我有一个头文件(Common.h),其中保存了一些在整个应用程序中使用的常量字符串。到目前为止,我已经在两个类中使用了
#import“Common.h”
,我得到了一个构建错误:

duplicate symbol _EX_XML_URL in /Users/username/Library/Developer/Xcode/DerivedData/projectname-ffvcivanbwwtrudifbcjntmoopbo/Build/Intermediates/projectname.build/Debug-iphonesimulator/projectname.build/Objects-normal/i386/NewsView.o and /Users/username/Library/Developer/Xcode/DerivedData/projectname-ffvcivanbwwtrudifbcjntmoopbo/Build/Intermediates/projectname.build/Debug-iphonesimulator/projectname.build/Objects-normal/i386/ViewController.o for architecture i386
EX_XML_URL声明如下:

    //
    //  Common.h
    //  Group of common constants used through out the application

    /*
     *  Constant strings available to application
     */

    #import <Foundation/NSString.h>

    NSString* EX_XML_URL = @"http://myurl.com/xmldata"; // URL for XML data
    NSString* EX_NO_CONNECTION = @"Network not availble";                           
    NSString* EX_DEFAULT_IMAGE = @"logo.png";
//
//普通的
//在整个应用程序中使用的一组公共常量
/*
*应用程序可用的常量字符串
*/
#进口
NSString*EX_XML_URL=@”http://myurl.com/xmldata"; // XML数据的URL
NSString*EX_NO_CONNECTION=@“网络不可用”;
NSString*EX_DEFAULT_IMAGE=@“logo.png”;
我的印象是:
#import
可以防止头文件被包含两次。我缺少哪一部分?

在头(.h)文件中,您应该只声明常量,然后在实现(.m)文件中定义常量并赋值

共同点

extern NSString *const EX_XML_URL;
共同点

NSString *const EX_XML_URL = @"http://myurl.com/xmldata";


如果你唯一的共同点是常数定义,这没关系,如果这就是事情的解决方式。只需确保编译并链接到目标中的文件中包含Common.m。

您需要将字符串拆分为两个文件,一个文件在头文件中外部声明,另一个文件实际包含文本:

h

m

这是我的荣幸,也是对NSGod的一次投票,他在我编辑答案时发布了一行代码。干得好,先生。
#import
防止头文件在同一个实现文件中包含两次。它消除了对熟悉的C头文件的
#IFNDEF
逻辑的需要。
extern NSString * const EX_XML_URL;
NSString * const EX_XML_URL = @"http://myurl.com/xmldata";