在Obj C中的类之间共享属性信息

时间:2015-06-18 20:02:13

标签: objective-c cocos2d-iphone share spritebuilder

我一直试图将我的一个课程中的信息分享到另一个课程(为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)内容。帮助

1 个答案:

答案 0 :(得分:1)

在第二行,您尝试分配“Hello World”,我认为lblTwo属性可能未初始化(因此为nil)。您需要在调用setString之前分配并初始化该属性。