Mehrere Parameter in NSURL Objekt
Frage
Ich möchte mehrere Parameter vom iphone sdk zu einem serverseitigen PHP übergeben, die mit einer mySQL Datenbank-Schnittstellen.
fand ich einige Antworten darauf, wie dies zu tun, aber ich habe eine harte Zeit, herauszufinden, die, wie mehrere Parameter enthalten.
, was ich habe gerade jetzt
- (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];
}
, die für 1 Parameter funktionieren würde, aber was ich suche so etwas wie
sein würdehttp://server.com/file.php?date=value&time=value&category=value&tags=value&entry=value
Wie würde ich über das tun dies gehen?
Lösung
Die - initWithFormat
Methode mehr Argumente für den Format-String nimmt.
So können Sie Dinge wie diese tun können:
NSString *urlstr = [[NSString alloc] initWithFormat:@"http://server.com/file.php?date=%d&second=%d&third=%d", theDate, 2, thirdIVar];
- initWithFormat
funktioniert fast genauso printf()
und Varianten.
Hier einige Beispiele printf()
http://stahlforce.com/dev/index. php? Werkzeug = CSC02
Edit: Wo sind nameField, tagsField, dreamEntry
die Variablen definiert und festgelegt
Es sei denn, sie NSString
s und definiert im @interface
sind, können Sie sie nicht auf diese Weise verwendet wird.
Ich schlage vor, harte Kodierung einige Werte für den Test:
NSString *urlstr = [[NSString alloc] initWithFormat:@"http://server.com/file.php?date=%@&time=%@&name=%@&category=%d&tags=%@&entry=%@", nil, nil, @"Name", nil, @"Tags", @"Dream"];
Andere Tipps
ein NSURL Erstellen nicht offene Kommunikation mit einem Server. Es ist nur eine Datenstruktur für eine URL zu halten. Sie wollen bis lesen auf NSURLConnection .
Sind alle Variablen, die Sie in Ihrem Format wirklich Zahlen vorbei sind? %d
ist der Platzhalter für eine Zahl; %@
ist ein Objekt. Es ist sehr überraschend, nil werden vorbei, wenn Sie eine Nummer erwar, auch für Testzwecke. Es wird „Arbeit“, weil null 0, aber es deutet darauf hin, dass diese nicht wirklich Zahlen.