ios - 将 INT 值从一个场景传递到另一个场景

标签 ios class cocos2d-iphone int

我正在尝试从另一个文件中的方法传递一个 int 值。我正在构建 cocos2d。我有以下代码计算我的 int energyInt

-(void)energyCalculate{

    NSCalendar *c = [NSCalendar currentCalendar];
    //Get Current Date
    NSDate *d1 = [NSDate date];
    //Get Last Stamina Input
    NSDate *d2 = [[NSUserDefaults standardUserDefaults] objectForKey:@"hunger_last_input"];
    NSDateComponents *components = [c components:NSSecondCalendarUnit fromDate:d2 toDate:d1 options:0];
    NSInteger diff = components.second;

    NSString * staminaString = [[NSUserDefaults standardUserDefaults] objectForKey:@"hunger"];
    NSInteger myInt = [staminaString intValue];

    energyInt = myInt - (diff * decreaseConstantChar);

    NSLog(@"ENERGY TEST STAMINA: %d", energyInt);

}

我在.h文件里设置

@interface staminaValues : CCNode

@property int energyInt;

-(void)energyCalculate;

其他文件

然后在另一个文件中,我可以使用以下代码调用该值,它通过 NSLOG 为我提供正确的值

[_staminaValues energyCalculate];

但是,我该如何使用/获取 energyInt 值?

我尝试了以下方法,但它们返回 0。

energy = _staminaValues.energyInt;
NSLog(@"Hunger Test : %d", energy);
NSLog(@"Hunger Test : %d", _staminaValues.energyInt);
NSLog(@"Hunger Test : %d", [_staminaValues energyInt]);

最佳答案

您应该将方法的返回类型更改为 int

-(int)energyCalculate();

并添加

返回 energyInt

到方法结束。

然后您可以通过以下方式访问 int

int energy = [_staminaValues energyCalculate];

关于ios - 将 INT 值从一个场景传递到另一个场景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24799786/

相关文章:

ios - 在 SWRevealViewController 中隐藏状态栏

java - 每次创建新客户对象时创建唯一的客户ID。这可能吗? java

java - 如何向标准java类添加方法

c++ - 在父类中使用 protected 数据,传递给子类

objective-c - 如何暂停 PerformSelector 的执行?

ios - 在仅变换层中更改属性 contentsGravity 将无效

c# - Xamarin iOS 将项目添加到 StoryBoard 中的 ScrollView

ios - 如何使用 Git 进行图形和声音密集型 iOS 开发?

objective-c - cocos2d 推送带有过渡的场景

objective-c - cocos2d 或 cocos3d 是否需要购买任何许可证或它是免费软件?