我想将多个参数从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
我将如何做到这一点?
答案 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,但它表明这些并不是真正的数字。