Задача-c, как сохранить имя и значение переменной - PullRequest
0 голосов
/ 21 марта 2012

У меня есть пять целых чисел. Я добавил все целые числа в mutableArray и перемешал его.

int A = 1;
int B = 2;
int C = 3;
int D = 4;
int E = 5;

myArray = [2,1,3,5,4]; //shuffled array

возможно ли получить имена переменных каждого целого числа в массиве? пожалуйста, помогите мне.

Ответы [ 3 ]

6 голосов
/ 21 марта 2012

В этом случае NSDictionary будет осуществим, вы можете хранить как имена переменных, так и их значения:

NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:@"1",@"A",@"2",@"B",@"3",@"C",@"4",@"D",@"5",@"E", nil];

Теперь вы можете получить все ключи словаря, например:

NSArray *arr = [dict allKeys];      // which will be [A,B,C,D,E]

И вы можете получить значения для этих клавиш, как:

for (int i=0; i<arr.count; i++) {
        NSLog(@"%@",[dict valueForKey:[arr objectAtIndex:i]]);  // Will print 1,2,3,4,5
    } 
1 голос
/ 21 марта 2012

Если бы я хотел сделать это (и отслеживать, где каждая переменная помещается после перемешивания (это то, что вы хотите сделать, верно?)), Я бы создал NSDictionary для каждой записи, а затем перемешал ее ...

int aInt = 1;
int bInt = 2;
int cInt = 3;
int dInt = 4;
int eInt = 5;

NSDictionary* a = [NSDictionary dictionaryWithObjectsAndKeys:
                                                [NSNumber numberWithInt:aInt],@"value",
                                                "A",@"name"];

NSDictionary* b = [NSDictionary dictionaryWithObjectsAndKeys:
                                                [NSNumber numberWithInt:bInt],@"value",
                                                "B",@"name"];

NSDictionary* c = [NSDictionary dictionaryWithObjectsAndKeys:
                                                [NSNumber numberWithInt:cInt],@"value",
                                                "C",@"name"];

NSDictionary* d = [NSDictionary dictionaryWithObjectsAndKeys:
                                                [NSNumber numberWithInt:dInt],@"value",
                                                "D",@"name"];

NSDictionary* e = [NSDictionary dictionaryWithObjectsAndKeys:
                                                [NSNumber numberWithInt:eInt],@"value",
                                                "e",@"name"];

NSMutableArray* myArray = [[NSMutableArray alloc] initWithObjects:a,b,c,d,e,nil];

// Then... you may shuffle it...
0 голосов
/ 21 марта 2012

Более ... элегантное решение (не с 5 различными переменными ..., но с переменными int, хранящимися в массиве)

Код:

int num[10] = {1,2,3,4,5,6,7,8,9,10};
NSMutableArray* arr = [[NSMutableArray alloc] initWithObjects: nil];

for (int i=0; i<10; i++)
{
    NSDictionary* dic = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithInt:num[i]],@"value",
                                                               [NSNumber numberWithInt:i],@"id",
                     nil];

    [arr addObject:dic];
}

NSLog(@"arr : %@",arr);

Выход:

arr : (
        {
        id = 0;
        value = 1;
    },
        {
        id = 1;
        value = 2;
    },
        {
        id = 2;
        value = 3;
    },
        {
        id = 3;
        value = 4;
    },
        {
        id = 4;
        value = 5;
    },
        {
        id = 5;
        value = 6;
    },
        {
        id = 6;
        value = 7;
    },
        {
        id = 7;
        value = 8;
    },
        {
        id = 8;
        value = 9;
    },
        {
        id = 9;
        value = 10;
    }
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...