我正在使用Sprite Kit(因此定位iOS 7+)編寫iOS遊戲,初始化gameObject
(自定義類)時遇到問題。無法在類初始化程序中生成NSUUID - Apple Mach-O鏈接程序錯誤
如果我嘗試設置遊戲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)
我已經檢查了所有提到的這個錯誤上,因此將共同修復:我的構建設置架構設置爲arm64 arm7 arm7s
,該文件具有正確設置自己的目標,我的所有.m
文件包含在構建中。
任何想法,我哪裏出錯了?我對Objective-C仍然很陌生,因此目前對我來說這些都是黑暗中的一幕。
完善。謝謝!就像我說的,我仍然在學習Objective-C/C++,所以我現在正在製作很多這樣的愚蠢錯誤。我從我的錯誤中學習 - 慢慢地 - 感謝像你這樣有幫助的人,所以Upvote和Accept在途中。 – MassivePenguin