Turkcell | Geleceği Yazanlar

Soru & Cevap

XML Parse ve veri saklama

17.07.2014 - 06:26

Merhabalar iPad için yapacağım yeni uygulamada XML'de bulunan tüm dataları telefon hafızasına kaydetip daha sonra internet bağlantısı olmadan bu dataları menüde göstermem lazım fakat bunun için herhangi bir framework yada çözüm bulamadım.

 

1.Önce bir butona basılarak bir data paketi inecek

2.Daha sonra bu data paketinin içindeki resimler kullanılarak XML parse işlemi ile menü oluşturulacak

3.Daha sonra internet bağlantısı olmadan bu kullanılacak

3325 Görüntülenme

4 Cevap

Anıl SÖZERİ
18.07.2014 - 11:09

Merhaba,

1. Datayı HTTP işlemleri ile çekecekseniz eğer AFNetwork Framework'ünü tercih edebilirsiniz, Geleceği Yazanlar'ın iOS 401 eğitimleri sayfasında da konusu mevcut zaten;

https://gelecegiyazanlar.turkcell.com.tr/konu/ios/egitim/ios-401/http-islemleri-icin-afnetwork

2. XML Parse işlemi için NSXMLParser sınıfını kullanabilirsiniz;

NSXMLParser sınıfından data ile birlikte bir adet instance türetip, delegate' ini belirledikten sonra parse işlemini başlatıyoruz.

[code]

NSXMLParser *parser = [[NSXMLParser alloc]initWithData:dataName];
[parser setDelegate:self];
[parser parse];

[/code]

Daha sonra delegate metotları içerisinde parse işlemlerine başlayabilirsiniz.

[code]

//Parse işlemi başladığında

- (void)parserDidStartDocument:(NSXMLParser *)parser{

        /* Codes */

}

//Gelen XML taglarına göre parçalama işlemi başladığında

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict{

        //<item>string</item> şeklinde olduğunu varsayarsak;

         if([elementName isEqualToString:@"item"]{

                /* Codes */

         }

}

//Gelen XML taglarının parçalama işlemi bittiğinde

- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName{

        /* Codes */

}

//Parse işleminde karakterler bulunduğunda bu metot tetikleniyor.
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string{

         /* Codes */

}

[/code]

3. İnternet bağlantısı olmadan kullanmak içinde isterseniz bu gelen dataları bir dosyaya yazdırıp, veriye ihtiyacınız oldugunda bu dosyadan çekebilirsiniz veya Ahmet'in de dediği gibi local veritabanında tutarak oradan tekrar çekebilirsiniz.

Yine iOS 401 eğitimlerindeki Core Data konusunu da inceleyebilirsiniz;
https://gelecegiyazanlar.turkcell.com.tr/konu/ios/egitim/ios-401/core-data

İyi çalışmalar.

Sitede yorum yapabilmek için giriş yapın ya da üye olun.

Ahmet Burak Demirkoparan
17.07.2014 - 16:35

Objective C'den anlamam ama birazcık yön verebilirim düşüncesi ile yazıyorum.Data paketi diye bahsettiğin şey bir xml file ise mesela www.siteadi.com/test.xml gibi vs uzak url nin kaynak kodu nasıl okunur diye bakarsın onu okumayı bulursun.Daha sonra o kaynak kodunu bir string'e vs basarsın.

http://www.edumobile.org/iphone/iphone-programming-tutorials/parsing-an-xml-file/

http://www.markhneedham.com/blog/2010/08/04/objective-c-parsing-an-xml-file/

Daha sonra bu şekilde o string'i parse etmeyi öğrenirsin.Öğrendikten sonra telefonun local veritabanına kayıt edersin bu elementleri.Artık program boyu bunları çekip menüyü oluşturursun.

Yapacağın tek şey adımlar haline getirdiğin her safhayı tek tek google amcadan araştırarak gitmek.

Sitede yorum yapabilmek için giriş yapın ya da üye olun.

Mehmet Murat İSPİRLİ
17.07.2014 - 16:14

Xcode ile native bir app olacak

Sitede yorum yapabilmek için giriş yapın ya da üye olun.

Barkın Kızılkaya
17.07.2014 - 15:08

Merhaba Uygulamaıyı ios ile mi tasarlıyacaksınız yoksa hibrid uygulamamı olacak ?

Sitede yorum yapabilmek için giriş yapın ya da üye olun.

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.