gpt4 book ai didi

objective-c - 为什么 NSClassFromString 在这两种情况下返回 nil 或不返回 nil?

转载 作者:行者123 更新时间:2023-12-03 16:57:55 25 4
gpt4 key购买 nike

我正在使用 CocosBuilder 2.1 和 Cocos2d-iPhone 2.0。我已经编译了 CocosBuilder,但在我的项目中使用他们的单文本标签示例时遇到了一个奇怪的问题。

这是有问题的代码,来自 CCBReader.m 第 823 行:

Class class = NSClassFromString(className);
if (!class)
{
NSLog(@"CCBReader: Could not create class of type %@",className);
return NULL;
}

此操作失败,并显示文本“无法创建 CCLabelTTF 类型的类”。但如果我像这样更改代码:

Class class = NSClassFromString(className);
if (!class)
{
CCLabelTTF* tempLabel = [[CCLabelTTF alloc] init];
[tempLabel release];
NSLog(@"CCBReader: Could not create class of type %@",className);
return NULL;
}

它有效。我没有看到其他人在使用 CocosBuilder 时遇到问题,所以这是怎么回事?

奇怪的是,这个更改只能在编译器级别影响它,因为添加的代码位于错误段内,对吗?

最佳答案

因为您在项目中根本没有使用CCLabelTTF,所以运行时没有为您加载该类。

它在您进行黑客攻击后起作用,因为您的项目现在确实使用 CCLabelTTF 类,因此运行时将加载它。

要解决此问题,请将 -ObjC 添加到您的链接器标志,请在以下链接中查看详细信息

http://developer.apple.com/library/mac/#qa/qa1490/_index.html https://stackoverflow.com/a/2615407/642626

关于objective-c - 为什么 NSClassFromString 在这两种情况下返回 nil 或不返回 nil?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16483175/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com