معلمات متعددة في كائن NSURL
سؤال
أرغب في اجتياز معلمات متعددة من جهاز iPhone SDK إلى PHP Server-Side واجهات مع قاعدة بيانات MySQL.
لقد وجدت بعض الإجابات حول كيفية القيام بذلك، ولكن أواجه صعوبة في معرفة كيفية تضمين العديد من المعلمات.
ما لدي الآن هو
- (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
كيف سأذهب في القيام بذلك؟
المحلول
ال - 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"];
نصائح أخرى
إنشاء NSURL لا يفتح الاتصالات بخادم. إنه مجرد هيكل بيانات لعقد عنوان URL. تريد أن تقرأ nsurlconnection..
هل كل المتغيرات التي تمر بتنسيقك أرقامك حقا؟ %d
هو العنصر النائب لعدد؛ %@
هو كائن. من المستغرب جدا أن تمر NIL إذا كنت تتوقع عددا، حتى لأغراض الاختبار. سوف "العمل" لأن NIL هو 0، لكنه يقترح أن هذه ليست أرقاما حقا.