开发者

Is it possible to reference a variable with a string and an int?

开发者 https://www.devze.com 2023-03-07 01:01 出处:网络
Is it possible to reference a variable with a string and an int, like this: int number1; int j = 1; @\"number%i\", j = 3; //H开发者_StackOverflow中文版ope this makes sense..

Is it possible to reference a variable with a string and an int, like this:

    int number1;

    int j = 1;

    @"number%i", j = 3; //H开发者_StackOverflow中文版ope this makes sense..

The code above gives me warnings and does not work, how could this be done.

I also tried this, but it doesnt work (for quite obvious reasons):

    int j = 1;

    NSString *refString = [NSString stringWithFormat:@"number%i", j];

    refString = 3;

Im really struggling with this, I know how to do it in Javascript, but not in Obj-C, is it possible?


This is an anti-pattern I call the Poor Man's Array. The better way to do this is to use a proper collection like an array instead of a bunch of variables that are secretly related. Done right, the code with an array will usually be a lot shorter and cleaner too.


From what I can infer you are trying to set/retrieve different variables based on the value of j.

You could use a dictionary for this purpose:

NSMutableDictionary *numbers = [NSMutableDictionary dictionary];
int j = 1;
[numbers setObject:[NSNumber numberWithInt:3] forKey:[NSNumber numberWithInt:j]];

And then to retrieve:

[[numbers objectForKey:[NSNumber numberWithInt:j]] intValue];

It's a bit verbose, but you could simplify it by creating a small class.

0

精彩评论

暂无评论...
验证码 换一张
取 消