0

Sprite Kit を使用して iOS ゲームを作成しています (iOS 7 以降を対象としていますgameObject)。(カスタム クラス) を初期化するときに問題が発生しています。

ゲームの ID に UUID を設定しようとすると、ビルドが失敗します (エラー メッセージについては以下を参照してください)。メソッドの呼び出しを削除するとgetUUID問題が解決するので、そこに問題があると確信しています。

メソッドはgetUUIDヘルパー クラス内にあり、Prefix.pch にインポートされます (したがって、他のすべてのファイルで使用できるようにする必要があります)。

は次のhelpers.hとおりです。

NSString *getUUID();

@interface helpers : NSObject

@end

そしてhelpers.m

@implementation helpers

+(NSString *)getUUID
{
    NSUUID *uuid = [NSUUID UUID];
    NSString *uuidString = [uuid UUIDString];

    return uuidString;
}

@end

最後に、gameObject.m外観は次のとおりです。

static NSString *gameID = nil;
static NSDate *gameStarted = nil;
static NSNumber *venue = nil;
static NSNumber *timerDuration = nil;
static NSArray *players = nil;
static NSArray *playerMoves = nil;
static NSNumber *winner = nil;

@implementation gameObject

+(void) initialize
{
    if(! gameID)
    {
        // generate a new guid for this game
        gameID = getUUID();
    }
}

@end

私が得ているエラーは次のとおりです。

Undefined symbols for architecture i386:
  "_getUUID", referenced from:
      +[gameObject initialize] in gameObject.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

SO でこのエラーについて言及されているすべての一般的な修正を確認しました。私のビルド設定アーキテクチャは として設定されてarm64 arm7 arm7sおり、ファイルのターゲットは正しく設定されており、すべての.mファイルがビルドに含まれています。

私が間違っていたアイデアはありますか?私はまだ Objective-C に非常に慣れていないので、現時点では、これらすべてが暗闇の中で揺れ動くようなものです。

4

1 に答える 1