0

「ObjCWorkAppMath.m」という名前の NSObject ファイルを作成しました。これにはいくつかの便利な関数が含まれており、ViewController ファイルでそのクラスを使用したいのですが、XCode はプロジェクトをコンパイルせず、以下のエラーを返します。

duplicate symbol _OBJC_METACLASS_$_ObjCWorkAppMath in:
    /Users/ctkt/Library/Developer/Xcode/DerivedData/ObjCWorkApp-hgxcjtjhzwxhqxcmxgkpucpfpieq/Build/Intermediates/ObjCWorkApp.build/Debug-iphonesimulator/ObjCWorkApp.build/Objects-normal/i386/ObjCWorkAppMath.o
    /Users/ctkt/Library/Developer/Xcode/DerivedData/ObjCWorkApp-hgxcjtjhzwxhqxcmxgkpucpfpieq/Build/Intermediates/ObjCWorkApp.build/Debug-iphonesimulator/ObjCWorkApp.build/Objects-normal/i386/ObjCWorkAppViewController.o
duplicate symbol _OBJC_CLASS_$_ObjCWorkAppMath in:
    /Users/ctkt/Library/Developer/Xcode/DerivedData/ObjCWorkApp-hgxcjtjhzwxhqxcmxgkpucpfpieq/Build/Intermediates/ObjCWorkApp.build/Debug-iphonesimulator/ObjCWorkApp.build/Objects-normal/i386/ObjCWorkAppMath.o
    /Users/ctkt/Library/Developer/Xcode/DerivedData/ObjCWorkApp-hgxcjtjhzwxhqxcmxgkpucpfpieq/Build/Intermediates/ObjCWorkApp.build/Debug-iphonesimulator/ObjCWorkApp.build/Objects-normal/i386/ObjCWorkAppViewController.o
ld: 2 duplicate symbols for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

このエラーに対してstackoverflowですべてのソリューションを試しましたが、それでも機能しないか、正しく実行できません...

#import "ObjCWorkAppViewController.h"
#import "ObjCWorkAppMath.m"

@interface ObjCWorkAppViewController ()

@end

@implementation ObjCWorkAppViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end

間違いはどこですか?

4

1 に答える 1

2

交換

#import "ObjCWorkAppMath.m"

#import "ObjCWorkAppMath.h"

インターフェースファイルの代わりに実装ファイルをインポートすると、クラスが 2 回定義されます: "ObjCWorkAppMath.m" (それが属する場所) と "ObjCWorkAppViewController.m" (意図されていません)。

于 2013-03-23T08:23:35.337 に答える