真的很奇怪的问题,但我无法找到正确的方法在互联网上做我自己。 我有3个NSStrings。调用:string1,string2和string3。 他们都从同一个UITextfield获得价值但在不同的时间。所以价值观彼此不同。 现在发生的事情是:
-(void)statement {
if (i==0) {
string1 = nameField.text;
} else if (i==1) {
string2 = nameField.text;
} else if (i==2) {
string3 = nameField.text;
}
}
是否可以用变量或其他东西替换'string'后面的1,2和3,所以我可以这样说:
-(void)statement {
stringX = nameField.text;
}
这样我可以在激活语句之前更改X?
希望一切都清楚!
谢谢!
答案 0 :(得分:3)
声明一个名为mysString的可变数组,例如myString
NSMutableArray *myString = [[NSMutableArray alloc] init];
然后使用之类的东西
myString[i] = nameField.text
答案 1 :(得分:0)
如果这些字符串是对象的属性,则可以使用KVO:
@property (nonatomic, strong) NSString *string1;
@property (nonatomic, strong) NSString *string2;
@property (nonatomic, strong) NSString *string3;
设置器:
[object setValue:nameField.text forKey:[NSString withFormat:@"string%@", @(i)]];
答案 2 :(得分:0)
或者创建一个选择器并执行它:
// assuming
@property (nonatomic, strong) NSString *string1;
@property (nonatomic, strong) NSString *string2;
@property (nonatomic, strong) NSString *string3;
// then
-(void)statement {
NSString *selName = [NSString withFormat:@"setString%@", @(i)];
SEL sel = NSSelectorFromString(selName);
[self performSelector:sel withObject:nameField.text afterDelay:0];
}