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

时间:2014-07-17 09:31:47

标签: 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]);

1 个答案:

答案 0 :(得分:1)

您应该将方法returntype更改为int

-(int)energyCalculate();

并添加

return energyInt

到方法的最后。

然后你可以通过

访问int

int energy = [_staminaValues energyCalculate];

相关问题