NSURL对象中的多个参数

时间:2009-05-27 13:45:54

标签: iphone nsstring nsurl

我想将多个参数从iphone sdk传递到与mySQL数据库连接的服务器端php。

我找到了一些关于如何做到这一点的答案,但我很难弄清楚如何包含几个参数。

我现在拥有的是


- (IBAction)sendButtonPressed:(id)sender
{
    NSString *urlstr = [[NSString alloc] initWithFormat:@"http://server.com/file.php?date=%d", theDate];
    NSURL *url = [[NSURL alloc] initWithString:urlstr];

    [urlstr release];
    [url release];
}

哪个适用于1个参数,但我正在寻找的是

http://server.com/file.php?date=value&time=value&category=value&tags=value&entry=value

我将如何做到这一点?

2 个答案:

答案 0 :(得分:2)

- initWithFormat方法为格式字符串采用多个参数。

所以你可以这样做:

  NSString *urlstr = [[NSString alloc] initWithFormat:@"http://server.com/file.php?date=%d&second=%d&third=%d", theDate, 2, thirdIVar];

- initWithFormat几乎与printf()及其变种相同。

以下是一些printf()示例http://stahlforce.com/dev/index.php?tool=csc02

编辑:定义和设置变量nameField, tagsField, dreamEntry在哪里?

除非它们是NSString并在@interface中定义,否则您无法以这种方式使用它们。

我建议对一些测试值进行硬编码:

    NSString *urlstr = [[NSString alloc] initWithFormat:@"http://server.com/file.php?date=%@&time=%@&name=%@&category=%d&tags=%@&entry=%@", nil, nil, @"Name", nil, @"Tags", @"Dream"];

答案 1 :(得分:1)

创建NSURL不会打开与服务器的通信。它只是一个用于保存URL的数据结构。您想阅读NSURLConnection

您传递的所有变量是否真的都是数字? %d是一个数字的占位符; %@是一个对象。如果您期待一个数字,即使是出于测试目的,也可以通过nil,这是非常令人惊讶的。它会“起作用”因为nil为0,但它表明这些并不是真正的数字。