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

112 Görüntülenme

4 Cevap

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

picture-3650-1421928561.jpg
anilsozeri
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.

picture-1372-1408467635.jpg
ahmtbrk
17.07.2014 - 04: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.

Profile picture for user mmx1li
mmx1li
17.07.2014 - 04:14

Xcode ile native bir app olacak

picture-1784-1379605884.jpg
barkin.kizilkaya
17.07.2014 - 03:08

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