2015-03-03 2 views
0

Я установил 3 UITextField на мой взглядКонтроллер.Какое значение я получу, если не сначала вызовет setValueForKey?

@property(nonatomic,retain) UITextField *line1; 
@property(nonatomic,retain) UITextField *line2; 
@property(nonatomic,retain) UITextField *line3; 

И я стараюсь, чтобы получить значение ключа:

for (int i = 1; i <= 3; i++) 
{ 
    NSString *fieldName = [NSString stringWithFormat:@"line%d",i ]; 
    UITextField *theField = [self valueForKey:fieldName]; 
    NSLog(@"TEXTFIELD : %@",theField); 
} 

И я получил все UITextFields.

2015-03-03 10:32:32.776 KVCTEST[26691:1586602] TEXTFIELD : <UITextField: 0x7f9a00e1c5c0; frame = (50 120; 220 30); text = ''; clipsToBounds = YES; opaque = NO; layer = <CALayer: 0x7f9a00e1ae40>> 
2015-03-03 10:32:32.777 KVCTEST[26691:1586602] TEXTFIELD : <UITextField: 0x7f9a00f1b920; frame = (50 160; 220 30); text = ''; clipsToBounds = YES; opaque = NO; layer = <CALayer: 0x7f9a00f1bb80>> 
2015-03-03 10:32:32.777 KVCTEST[26691:1586602] TEXTFIELD : <UITextField: 0x7f9a00f1d330; frame = (50 200; 220 30); text = ''; clipsToBounds = YES; opaque = NO; layer = <CALayer: 0x7f9a00f1d590>> 

Но если я изменил имя переменной экземпляра, например, LINE1, LINE2, LINE3, исключая повысит.

Так по умолчанию значение ключевого значения будет ассоциироваться с именем ivar? И мне не нужно сначала setValueForKey?

+0

Ваш ответ под 'По умолчанию шаблон поиска для valueForKey:' в [документы] (https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/KeyValueCoding/Articles/SearchImplementation.html # // apple_ref/DOC/UID/20000955) – MendyK

ответ

0

Ваш ответ на этот вопрос можно найти в Apple documentation regarding KVC.

Ключ - это строка, которая идентифицирует конкретное свойство объекта. Обычно ключевое слово соответствует имени метода доступа или переменной экземпляра в принимающем объекте. Ключи должны использовать кодировку ASCII , начинаются с строчной буквы и могут не содержать пробелов.

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