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 に非常に慣れていないので、現時点では、これらすべてが暗闇の中で揺れ動くようなものです。