2009-05-27 9 views
0

Ich würde gerne mehrere Parameter aus dem iPhone SDK an eine serverseitige PHP, die Schnittstellen mit einer MySQL-Datenbank.Mehrere Parameter in NSURL-Objekt

Ich habe einige Antworten gefunden, wie ich das machen kann, aber es fällt mir schwer herauszufinden, wie man mehrere Parameter einbezieht.

was ich habe jetzt ist


- (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 wäre so etwas wie

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

wie würden Ich gehe das machen?

Antwort

2

Die Methode - initWithFormat akzeptiert mehrere Argumente für die Formatzeichenfolge.

So können Sie Dinge tun, wie folgt:

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

- initWithFormat arbeitet fast identisch zu printf() und Varianten.

Hier einige Beispiele printf()http://stahlforce.com/dev/index.php?tool=csc02

Edit: Wo sind die Variablen nameField, tagsField, dreamEntry definiert und festgelegt?

Es sei denn, sie sind NSString s und definiert in der @interface Sie können sie nicht auf diese Weise verwenden.

Ich schlage vor, hart, einige Werte für die Prüfung Codierung:

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

ein NSURL Erstellen öffnet sich nicht die Kommunikation mit einem Server. Es ist nur eine Datenstruktur für das Halten einer URL. Sie möchten unter NSURLConnection nachlesen.

Sind alle Variablen, die Sie in Ihrem Format übergeben, wirklich Zahlen? %d ist der Platzhalter für eine Nummer; %@ ist ein Objekt. Es ist sehr überraschend, wenn Sie eine Zahl erwarten, auch wenn Sie zu Testzwecken eine Null erwarten. Es wird "funktionieren", weil Null 0 ist, aber es deutet darauf hin, dass dies nicht wirklich Zahlen sind.

+0

bedenkt, dass in diesem Fall die Kommunikation sollte nur One-Way-funktionieren ... das iPhone nicht erhalten Daten vom Server zurück, es sendet es nur, was könnte dafür fehlen zu arbeiten? ich habe Platzhalter entsprechend umgeschalten, danke für die Köpfe hoch. – bcsantos

+0

Erstellen eines NSURL ist wie Erstellen eines NSString. Es bewirkt nicht, dass es irgendwo ausgegeben wird. Sie müssen weiterhin eine Verbindung zum Server herstellen. Das macht NSURLConnection. Auch wenn Sie keine Daten zurück haben wollen, werden Sie etwas bekommen. Zumindest hoffen Sie, ein HTTP/200 zu bekommen, oder? –

+0

danke für die Erklärung, wird auf NSURLConnection beziehen – bcsantos