I've been trying to share information from one of my classes to another one (trying out something for Spritebuilder) and it's just. Not. Working.
I want to change the text of the label in the second class to a string I define in the first. Here is my code.
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
I've tried making StoryScene a property in the MainScene class, synthesizing pretty much everything, moving things around - but I cannot get that dogging lblTwo to log as anything, which prevents the Label text from changing (I think).
Here is the relevant output I get in my log.
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
I don't know why it can't find the lblTwo variable, and I don't know how to change the StoryScene's logging name to something that isn't (null), or how to give the lblTwo string something to hold. Help?
At the second line, where you try to assign "Hello World", I think the lblTwo property might be uninitialised (so nil). You need to alloc and init the property before calling setString on it.