Ios 如果不先调用setValueForKey,我将得到什么值?

Ios 如果不先调用setValueForKey,我将得到什么值?,ios,objective-c,kvc,Ios,Objective C,Kvc,我在viewController中设置了3个UITextField @property(nonatomic,retain) UITextField *line1; @property(nonatomic,retain) UITextField *line2; @property(nonatomic,retain) UITextField *line3; 我试图得到key的值: for (int i = 1; i <= 3; i++) { NSString *fieldName =

我在viewController中设置了3个UITextField

@property(nonatomic,retain) UITextField *line1;
@property(nonatomic,retain) UITextField *line2;
@property(nonatomic,retain) UITextField *line3;
我试图得到key的值:

for (int i = 1; i <= 3; i++)
{
    NSString *fieldName = [NSString stringWithFormat:@"line%d",i ];
    UITextField *theField = [self valueForKey:fieldName];
    NSLog(@"TEXTFIELD : %@",theField);
}
我得到了所有的信息

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的名称关联?而且我不必先设置ValueForkey?

您的答案可以在中找到

键是标识对象特定属性的字符串。 通常,一个键对应于访问器或方法的名称 接收对象中的实例变量。键必须使用ASCII 编码,以小写字母开头,不能包含 空白

您的答案在默认的valueForKey:搜索模式下