هل هناك طريقة سهلة للعمل مع خدمات الويب لأجهزة iPhone dev؟

StackOverflow https://stackoverflow.com/questions/400299

  •  03-07-2019
  •  | 
  •  

سؤال

نريد أخذ بيانات XML وتحويلها إلى كائن NSDictionary، لكننا لا نريد تكرارها يدويًا عبر XML.هل هناك طريقة سهلة للقيام بذلك؟كيف تقوم بخدمات الويب لتطبيق iPhone الخاص بك؟

هل كانت مفيدة؟

المحلول

إذا كان لديك السيطرة على الانتاج XML قد تتمكن من محاولة إنشاء قائمة الممتلكات التي يمكنك ثم قراءة في القاموس باستخدام -dictionaryWithContentsOfURL: (على الرغم من وسيلة أفضل متزامنة سيكون للحصول على البيانات باستخدام NSURLConnection ومن ثم تحويل البيانات باستخدام طريقة -propertyList على NSString). يمكنك العثور على مزيد من المعلومات حول القوائم الملكية هنا: HTTP: // المطور .apple.com / وثائق / الكاكاو / المفاهيمي / PropertyLists / مقدمة / chapter_1_section_1.html

وبطبيعة الحال فإن أفضل حل هو استخدام العميل مريحة واستخدام مزيج من NSURLConnection للحصول على / إرسال البيانات والطبقات TouchXML (<لأ href = "http://code.google.com/p/touchcode/ ويكي / TouchXML "يختلط =" نوفولو noreferrer "> http://code.google.com/p/touchcode/wiki/TouchXML ) لتحليل البيانات، على الرغم من أن ذلك يتطلب المزيد من العمل لوضع البيانات في قاموس. بالطبع إذا كانت هذه سوف تكون الكائنات البيانات الرئيسية في النظام الخاص بك كنت تريد حقا أن تستخدم إما فئة مخصصة أو سكليتي لتخزين البيانات كما أنه يوفر لك أكثر من ذلك بكثير الموثوقية في اختبار التطبيق من القاموس.

نصائح أخرى

إذا كنت تستطيع السيطرة على الانتاج الخادم، حاول استخدام قوائم Plists. وإلا كنت عالقا مع XML التوزيع (أو JSON إذا كان الملقم يمكن أن نفعل ذلك)، ولكن هناك الأطر التي يمكنك استخدامها. وانظر جواب هذا السؤال .

وأيضا، وهنا لمحة جيدة عن كيفية القيام عملاء مريحة على اي فون:

الشبكي: / /developer.apple.com/webapps/articles/creatingrestfulclients.html

يمكنك إرجاع البيانات بتنسيق JSON.هناك العديد من موزعي JSON مفتوحة المصدر المتاحة لجهاز iPhone (أحدها هو TouchJSON).

هناك فئة أخرى متاحة تسمى NSPropertyListSerialization والتي توفر لك قاموسًا من البيانات.

يمكنك القيام بشيء كهذا بالبيانات التي تتلقاها

NSDictionary* propertyList;
تنسيق NSPropertyListFormat؛
NSString *errorStr;

propertyList = [NSPropertyListSerialization
propertyListFromData:receivedData
خيار قابلية التغيير:NSPropertyListImmutable
شكل:&شكل
وصف خاطئ:&errorStr];

عذرًا، لا أعرف ما هي العلامات المستخدمة هنا لتنسيق التعليمات البرمجية!

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top