从app delegate更改对象属性(在不同的类中)

时间:2014-10-01 21:04:14

标签: ios objective-c cocos2d-iphone

这就是我尝试做的事情:用户启动应用。 AppDelegate创建对SecondClass的现有实例的引用。然后,更改SecondClass上初始化的标签字符串。

我已尝试过两种方法:

第一种方法:

的AppDelegate:

CCScene *scene2 = [CCBReader loadAsScene:@"FirstClass"];
FirstClass *firstClass = (FirstClass *)scene2.children.firstObject;
[firstClass changeLabel];

的Firstclass

@implementation FirstClass
{
    CCLabelTTF *myLabel
}

-(void)changeLabel
{
    myLabel.string = @"String";
}

第二种方法: 的AppDelegate:

CCScene *scene2 = [CCBReader loadAsScene:@"FirstClass"];
FirstClass *firstClass = (FirstClass *)scene2.children.firstObject;
firstClass.myLabel.string = @"String";

的Firstclass

@property (strong, nonatomic) CCLabelTTF *myLabel;

这两种方法都以相同的结果结束。标签字符串不会改变。当我使用相同的确切代码来更改NSInteger而不是标签字符串,然后使用NSLog将其打印出来并且它有效。我已经三次检查以确保myLabel不是零。我还确保myLabel没有在后台线程上运行。我试图了解如何使其发挥作用,我真的很感激任何使这项工作的答案。谢谢。

编辑: 我编辑了changeLabel来创建一个名为newString的新NSString,并将newString设置为" new string"。然后我将adsPrice.string设置为newString,但它仍然没有显示新字符串,即使我有一个NSLog告诉我newString是什么。

0 个答案:

没有答案