【发布时间】:2026-02-17 12:35:01
【问题描述】:
我有一个奇怪的问题。 我在我的一个项目中使用标签节点。上次我添加自定义字体时,我的标签节点无法正常工作。 如果我为我的标签设置了字体(例如在此文本下的示例),标签就不会出现在屏幕上,但应用程序可以正常工作。单击按钮开始游戏时,加载游戏视图也需要一段时间(我猜字体正在加载?):
label1 = [SKLabelNode labelNodeWithFontNamed:@"Arial"];
但是如果我没有为我的标签设置任何字体,应用程序就会崩溃并且我会收到警告:
*** Terminating app due to uncaught exception 'Attemped to add nil node', reason: 'Attemped to add nil node to parent: <SKScene> name:'(null)' frame:{{0, 0}, {568, 320}}'
我在这里阅读了很多关于字体问题的帖子。但我就是找不到类似的东西。
出现错误的代码(调用函数到秒表节点查看):
-(void)addStopwatch
{
stopwatch.position = CGPointMake(self.frame.size.width/16,self.frame.size.height);
stopwatch = [SKLabelNode labelNodeWithFontNamed:@"Arial"];
stopwatch.fontSize = 25;
stopwatch.fontColor = [UIColor whiteColor];
stopwatch.text = [NSString stringWithFormat:@"%s","00:00"];
stopwatch.name = @"stopW";
[self addChild:stopwatch];
}
秒表精灵在 .h 文件中声明:
SKLabelNode* stopwatch;
【问题讨论】:
-
如果删除自定义字体并清理构建文件夹(xcode: project -> clean),错误会消失吗?哪些标签是 nil,带有自定义字体的标签或所有其他标签或只是任何标签?您是否在新的 SK 项目中尝试过自定义字体是否正常工作?即使新项目失败,字体也可能是问题所在。否则,您需要更精确地调试它(断点,yada-yada)。
-
@LearnCocos2D 我尝试过 Xcode 包含的 put 字体。而且没有一个标签出现。我还尝试创建一个新的 SK 标签,并且在我运行游戏时它也是不可见的。我试图删除自定义字体并清理项目,但没有运气..
-
你能发布错误发生的代码(整个方法或足够的上下文)吗?看不到就加异常断点(Xcode显示main.m)
-
@LearnCocos2D 已编辑。当我调用一个函数来添加秒表(标签节点)来查看时出现问题。
-
我已经解决了删除添加 sk 标签节点的旧方法以及从全局初始化中删除我的标签注释并用其他名称重新创建它的问题.. 仍然不知道发生了什么。我认为实现自定义字体是个问题。
标签: ios sprite-kit sklabelnode