0

我想将多个参数从 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

我该怎么做呢?

4

2 回答 2

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定义和设置?

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

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

    NSString *urlstr = [[NSString alloc] initWithFormat:@"http://server.com/file.php?date=%@&time=%@&name=%@&category=%d&tags=%@&entry=%@", nil, nil, @"Name", nil, @"Tags", @"Dream"];
于 2009-05-27T13:50:03.013 回答
1

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

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

于 2009-05-27T14:28:42.450 回答