Search code examples
variablescocos2d-iphonec-preprocessor

Set variable name depending on other variable


me need make settings language

I've got:

#define kMenuSettingsHeaderrus @"Настройки"
#define kMenuSettingsHeadereng @"Settings"

and I want use this global variables to set string to label depending on

_language= [[SettingsManager sharedSettingsManager] getLanguage];

_language can be @"rus" or @"eng"

CCLabelTTF *settingsLabel = [CCLabelTTF labelWithString:[NSString stringWithFormat:@"kMenuSettingsHeader%@",_language] fontName:kLabelFontNameTTF fontSize:kMenuHeaderFontSize];

can you help me, in php i do this like $$

one example from php:

$a = "hello";
$$a = "world"; => $hello="world"

Solution

  • The thing you were doing would have given kMenuSettingsHeadereng or kMenuSettingsHeaderrus as result because instead of macros they will be treated as strings... So Use this

    #define kMenuSettingsHeaderrus @"Настройки"
    #define kMenuSettingsHeadereng @"Settings"
    
    
    _language= [[SettingsManager sharedSettingsManager] getLanguage];
    
    CCLabelTTF *settingsLabel;
     if ([_langueage isEqualToString:@"rus"])
    {
    settingsLabel = [CCLabelTTF labelWithString:kMenuSettingsHeaderrus fontName:kLabelFontNameTTF fontSize:kMenuHeaderFontSize];
    }
    else if ([_langueage isEqualToString:@"eng"])
    {
    settingsLabel = [CCLabelTTF labelWithString:kMenuSettingsHeadereng fontName:kLabelFontNameTTF fontSize:kMenuHeaderFontSize];
    }
    

    Check for the syntax... I don't have X-code to check for that... Hope this helps.. :)