我一直试图将我的一个课程中的信息分享到另一个课程(为Spritebuilder尝试一些东西)并且它只是。不。工作。
我想将第二个类中标签的文本更改为我在第一个类中定义的字符串。这是我的代码。
MainScene.h
@interface MainScene : CCNode
@property CCLabelTTF *lblChange;
-(void) _button;
@end
MainScene.m
#import "MainScene.h"
#import "StoryScene.h"
@implementation MainScene
-(void)_button {
StartScene *startHold = [[StartScene alloc] init];
[startHold.lblTwo setString:@"Hello World!"];
NSLog(@"%@, this is the StoryScene", startHold);
NSLog(@"%@, this is the Main Scene", @"Yessss");
NSString *filler = [startHold.lblTwo string];
NSLog(@"%@",filler);
CCScene *storyScene = [CCBReader loadAsScene:(@"StartScene")];
[[CCDirector sharedDirector] replaceScene: storyScene];
}
@end
StoryScene.h
#import "CCNode.h"
@interface StartScene : CCNode
@property CCLabelTTF *lblTwo;
@end
StoryScene.m
#import "StoryScene.h"
@implementation StoryScene
@end
我已经尝试将StoryScene作为MainScene类中的一个属性,合成了几乎所有内容,移动了一些东西 - 但是我无法将这些内容lblTwo
记录为任何内容,这会阻止Label文本的更改(我认为)。
这是我在日志中获得的相关输出。
TheCaveOfMan[58721:1593076] <StartScene = 0x7fc2cfb31e40 | Name = (null)>, this is the StoryScene
2015-06-18 15:52:04.712 TheCaveOfMan[58721:1593076] Yessss, this is the Main Scene
2015-06-18 15:52:04.712 TheCaveOfMan[58721:1593076] <StartScene = 0x7fc2cfb31e40 | Name = (null)>, this is the label
2015-06-18 15:52:04.713 TheCaveOfMan[58721:1593076] (null)
2015-06-18 15:52:04.714 TheCaveOfMan[58721:1593076] CCBReader: Couldn't find member variable: lblTwo
2015-06-18 15:52:04.725 TheCaveOfMan[58721:1593076] cocos2d: surface size: 640x1136
我不知道为什么它找不到lblTwo变量,而且我也不知道如何将StoryScene的日志名称更改为不是{{tt} { {1}},或者如何提供(null)
内容。帮助
答案 0 :(得分:1)
在第二行,您尝试分配“Hello World”,我认为lblTwo属性可能未初始化(因此为nil)。您需要在调用setString之前分配并初始化该属性。