gpt4 book ai didi

ios - Apple Mach-O 链接器错误。 Architecture arm64 中的重复符号

转载 作者:塔克拉玛干 更新时间:2023-11-02 10:00:27 27 4
gpt4 key购买 nike

我正在制作一个应用程序,并在我的一些应用程序中使用了#import“HEADER“,因为它们对功能至关重要并且没有出现任何问题。我再次尝试以相同的方式使用#import命令我会这样做,但我得到一个重复的符号错误,dupes 是在标题 A.h 中声明的三个变量被导入到 B.m.

我试过:

更新 OSX

重新启动

清洁工程

仅使用构建架构 -> 是

喝茶

确保我导入的是 A.h 而不是 A.m

帮助!

最佳答案

您不应该在 header 中定义全局变量。

您有 2 个选择:

选项 1

使用static声明一个静态变量。那么你的变量只能在 A 类中访问,你不会得到重复的符号错误。

#import <UIKit/UIKit.h>

static NSString *characterName1 = @"";
static NSString *characterName2 = @"";

static int characterChoice;

@interface CharacterViewController : UIViewController {

选项 2(如果您想在多个类中使用全局变量)

在 A.h 中使用 extern 关键字来声明您的变量并在 A.m 中定义它。然后你的全局变量就可以在 B.m 类中被访问而没有重复的符号。

//---------
// A.h
//---------

#import <UIKit/UIKit.h>

extern NSString *characterName1;
extern NSString *characterName2;

extern int characterChoice;

@interface CharacterViewController : UIViewController {

//-----------
//A.m
//-----------

#import "A.h"

NSString *characterName1 = @"";
NSString *characterName2 = @"";

@implementation CharacterViewController

关于ios - Apple Mach-O 链接器错误。 Architecture arm64 中的重复符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31495139/

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