使用变量在运行时声明字符串

时间:2012-08-07 20:23:50

标签: objective-c nsstring

我正在尝试使用我传递给Web服务的参数创建一个字符串,但我不知道在运行之前会有多少参数。

所有参数都存储在一个数组中,我遍历数组,将每个参数添加到字符串中。

.php端的变量标记为field1,field2,field3等。

我的问题在于我尝试在for循环中声明字符串。我正在尝试使用x并将其附加到单词“field”,以便我最终可以使用field1,field2,filed3等。

当我尝试这样做时,会出现一条错误消息,指出参数多于预期。

这就是我所拥有的:

NSString *URLWithParameters = [NSString stringWithFormat:@"http://www.mywebsite/service?"];

for (int x = 0; x < [fields count]; x++) {

    NSString *temp = [NSString stringWithString:@"field%i=%@&", x, (NSString *)[fields objectAtIndex:x]];

    URLWithParameters = [URLWithParameters stringByAppendingString:temp];

}

2 个答案:

答案 0 :(得分:2)

stringWithString应为stringWithFormat

答案 1 :(得分:1)

变化:

NSString *temp = [NSString stringWithString:@"field%i=%@&", x, (NSString *)[fields objectAtIndex:x]];

为:

NSString *temp = [NSString stringWithFormat:@"field%i=%@&", x, (NSString *)[fields objectAtIndex:x]];

<小时/> 注意:

为什么使用[NSString stringWithFormat:@"http://www.mywebsite/service?"]时可以直接使用NSString *URLWithParameters = @"http://www.mywebsite/service?";

stringWithformat

或使用NSString *URLWithParameters = [NSString stringWithFormat:@"%@", @"http://www.mywebsite/service?"];

{{1}}