这是MyScene.h

#import <SpriteKit/SpriteKit.h>
@interface MyScene : SKScene
@property (nonatomic) int monstersDestroyed;
@end


这是MyScene.m

if( someCondition ){
    self.monsterPassed++;
    NSLog(@"MonsterPassed : %d",self.monsterPassed);
}


控制台将显示“ MonsterPassed:0” ...“ MonsterPassed:1” ...等等。很好

这是ViewController.h

#import <UIKit/UIKit.h>
#import <SpriteKit/SpriteKit.h>

@interface ViewController : UIViewController
@property (weak, nonatomic) IBOutlet UILabel *DestroyeCountLabel;
@end


这是ViewController.m

#import "ViewController.h"
#import "MyScene.h"
@interface ViewController ()
@property (nonatomic) AVAudioPlayer * backgroundMusicPlayer;
@end

@implementation ViewController

- (void)viewWillLayoutSubviews
{
[super viewWillLayoutSubviews];

MyScene *monsterDestroyerValue = [[MyScene alloc]init];

self.DestroyeCountLabel.text =[NSString stringWithFormat:@"Monster Destroyed:%d",monsterDestroyerValue.monstersDestroyed];
...
}


问题是在ViewController.m中它不会显示在我的标签中,而只会显示“ Monster Destroyed:0”。为什么?我已经搜索过,但是找不到任何解决方案。

最佳答案

您只需设置一次DestroyeCountLabel的文本。在此之后设置monstersDestroyed变量将不会自动更新DestroyeCountLabel。有无数种方法可以做到这一点。我的建议是在深入研究Apple的一些教程之前,可以更好地掌握编程知识。

关于ios - 如何获取另一个类的int变量的int值?(XCode 5)我很困惑,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24616113/

10-10 13:18