将NSString转换为对象名称

时间:2014-02-02 22:51:35

标签: ios objective-c

NSString *q = @"Day";
NSArray *shu = [NSArray arrayWithObjects:[NSString stringWithFormat:@"%@1",q];
[[self.shu objectAtIndex:0] setText: @"HI"];

在下面的代码中,我有一个数组,我正在填充NSStrings。我想要做的是用UITextfield对象填充数组,而不是名称的字符串。是否可以将字符串转换为对象UITextfield?像这样:

NSString *q = @"Day";
NSArray *shu = [NSArray arrayWithObjects:[NSObject namewithFormat:@"%@1",q];
[[self.shu objectAtIndex:0] setText: @"HI"];

编辑: 我想要做的是使用这段代码:

for (int i=1; i<=5; ++i) { 
NSArray *shu = [NSArray arrayWithObjects:[NSString stringWithFormat:@"TextField%d1",i],[NSString stringWithFormat:@"TextField%d2",i];
 }

当i = 1时,使其成为:

NSArray *shu = @[Textfield11,Textfield12];

当i = 2然后:

NSArray *shu = @[Textfield21,Textfield22];

1 个答案:

答案 0 :(得分:0)

如果我理解你的要求,你想根据它的名字设置一个视图控制器的属性。

您应该研究键值编码。有方法setValue:forKey和setValue:forKeyPath。

setValue:forKey尝试查找目标对象的属性或实例变量,并更改该属性的值。

setValue:forKeyPath将遍历对象列表。因此,例如,如果你有一个名为fooVC的视图控制器,它有一个名为fooTextField的文本字段。

你可以使用这样的代码:

[fooVC setValue:@“HI”forKeyPath:“fooTextField.text”];

这将在对象“fooVC”中搜索名为“fooTextField”的属性,然后在“fooTextField”对象中搜索名为“text”的属性。如果两者都存在,则将text属性的值设置为字符串“HI”。