我还对Objective-C中的
我以为(来自这篇文章),
#import
语句有点困惑。我有一个头文件(Common.h),其中保存了一些在整个应用程序中使用的常量NSStrings。到目前为止,我已经在两个类中使用了#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";
我以为(来自这篇文章),
#import
可以防止头文件被重复包含。那么我漏掉了什么?
#import
防止头文件在 同一实现文件 中被包含两次。它消除了 C 头文件中熟悉的#IFNDEF
逻辑的需要。 - Hot Licks