2015-03-14 4 views
0

Я не уверен, что правильно сформировал заголовок, так как Google сохраняет молчание.Доступ к ресурсу с использованием переменного пути

Я хочу получить доступ к объекту (или объекту или экземпляру), используя путь, состоящий из известного пути + путь переменной. Предположим, что существует 5 свойств: pr1, pr2 ... pr5. Для репетиции их я использую:

for (int i = 1; i <=5; i++) {...}

Далее я хочу, чтобы получить собственность, используя i. Что-то вроде этого: self.pr+i;. Каков правильный способ сделать это в Objective C?

+1

Каковы свойства? Покажите код для них. И чем вы их используете, как только у вас есть? – Wain

+0

Не забудьте проголосовать за ответ, который решил вашу проблему ;-) – Wain

+0

Wain, я ниже 15 очков и не могу голосовать :( –

ответ

1

Вообще, если вы не описать точный случай, вы можете использовать KVC:

id myVar = [self valueForKey:myVarName]; 

так, как только вы знаете, что вам просто нужно создать строку:

NSString *myVarName = [NSString stringWithFormat:@"pr%d", i]; 
+0

Спасибо, что работает! –

2
for (NSInteger i = 1; i <=5; i++) 
{ 
// access read 
    id property = [self valueForKey:[NSString stringWithFormat:@"pr%ld",(long)i]]; 

    // write 
    id someValue; 
    [self setValue:someValue forKey:[NSString stringWithFormat:@"pr%ld",(long)i]]; 

    // remember pr1 must be a self property. 
} 
+0

Это правильный ответ. (Голосов) Вы можете также используйте 'valueForKeyPath', который будет пересекать несколько объектов, например' self.dictionary.key.property' –

+0

Спасибо, что работает! –

Смежные вопросы