Video: Closing Keynote (GDD Europe '17) 2024
Oleh Neal Goldstein
Apabila anda bercakap mengenai pengaturcaraan awan iOS, anda bercakap tentang dua perkara: iCloud (yang dilaksanakan untuk anda oleh Apple dan membolehkan anda menyegerakkan data antara peranti) dan perkhidmatan web (yang membolehkan anda mempunyai beberapa pemprosesan aplikasi anda dilakukan oleh komputer jauh di mana-mana di tengah-tengah siapa tahu di mana). Perkhidmatan web bergantung kepada cara yang efisien untuk menyerahkan permintaan perkhidmatan web - permintaan yang dibuat oleh pengguna untuk data yang disimpan di awan. Kedua-dua format yang paling berkesan (setakat ini, sekurang-kurangnya) ialah XML dan JSON. Petua yang anda dapati di sini menunjukkan kepada anda cara menyiapkan permintaan web (menggunakan perkhidmatan web Google Geocoder sebagai contoh) dan bagaimana untuk menghuraikan kedua respon XML dan respons JSON supaya anda boleh menggunakan data perkhidmatan web dalam aplikasi anda.
Parsing Data Kembali dari Awan oleh Perkhidmatan Web
Apabila anda menggunakan perkhidmatan web yang berpusat di awan, respons anda mungkin berada dalam JSON atau XML, dua format standard untuk pemancaran data antara pelayan dan aplikasi web. Akan ada masa apabila anda mempunyai pilihan antara kedua-dua format, tetapi kali lain anda harus pergi dengan apa yang anda dapatkan.
Perkhidmatan Web Geocoding Google, sebagai contoh, memberikan anda pilihan.
Jika anda mahu respons dalam format XML, anda akan menggunakan
// peta. googleapis. com / maps / api / geocode / xml
Jika anda mahu respons di JSON, anda akan menggunakan
// maps. googleapis. com / maps / api / geocode / json? paremters
Walaupun serupa dengan niat, bagaimana anda mendapatkan maklumat dari struktur data XML dan JSON agak berbeza dalam pelaksanaan.
Parsing Respons XML dari Cloud
Apabila anda menggunakan perkhidmatan web yang berasaskan di awan, respons anda mungkin dalam XML. Jika, semasa bekerja dengan perkhidmatan web berasaskan awan, anda perlu memasukkan yang berikut dalam pelayar web anda
// peta. googleapis. com / maps / api / geocode / xml? sensor = true & address = EmpireState Building &
anda akan mendapatkan beberapa XML - contohnya:
… 40. 7484395 -73. 9856709 …
Oleh kerana XML tidak benar-benar menyatakan dirinya dengan cara yang mudah difahami, maka anda perlu mengurai apa sahaja yang diberikan oleh XML kepada anda.
Ingat XML terdiri daripada elemen yang mempunyai tag permulaan dan akhir. Untuk mendapatkan maklumat melalui iCloud, anda menggunakan kelas NSXMLParser yang menggunakan corak delegasi. Inilah caranya:
NSXMLParser * xmlParser = [[NSXMLParser alloc] initWithData: data]; [xmlParser setDelegate: self]; [xmlParser parse];
Ternyata terdapat empat kaedah perwakilan NSXMLParser yang anda akan melaksanakan untuk menghuraikan struktur data XML: