gpt4 book ai didi

Objective-C#import 混淆

转载 作者:太空狗 更新时间:2023-10-30 03:59:06 27 4
gpt4 key购买 nike

我对 Objective-C 中的 #import 语句仍然有些困惑。我有一个头文件 (Common.h),其中包含一些在整个应用程序中使用的常量 NSString。到目前为止,我在 2 个类中使用了 #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";

我的印象是(from this post)#import 防止头文件被包含两次。我在这里缺少什么部分?

最佳答案

在您的头文件 (.h) 中,您应该只声明常量,然后您应该定义常量并在您的实现 (.m) 中分配一个值) 文件。

在 Common.h 中

extern NSString *const EX_XML_URL;

在 Common.m 中

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


如果您在 Common.m 中唯一拥有的是常量定义,那没关系,如果事情就是这样。只需确保 Common.m 包含在编译并链接到您的目标的文件中。

关于Objective-C#import 混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7338957/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com