Site icon Mobilhanem

iOS Plist Kullanımı (Oluşturma-Okuma-Yazma)

Merhaba Arkadaşlar,
mobilhanem.com üzerinden anlattığımız/yayınladığımız derslere ios’ta Propert List yani Plist Kullanımı ile devam edeceğim.

Arkadaşlar Plist uygulama içinde bilgi saklamaya yarayan bir yapıdır. Kısmi olarak database görevi görür. Büyük olmayan datalarınızı Plist üzerinde saklayabilirsiniz.Mesala bir Login bilgisi tutacaksınız yada kişi bilgilerini ,yada oyun yazdınız oyun skorlarını bunun gibi bir çok değeri tutabilirsiniz.
Anahtar-Değer şeklinde veri saklarsınız.NSDictionary gibi düşünün her bir key in bir value yani değeri vardır.Androiddeki SharedPreferences yapısıyla aynıdır.

Plist üzerinde tutabileceğiniz data türleri:
Array
Dictionary
Boolean
Data
Date
Number
String

Bu data türlerini anahtar-değer şeklinde plist üzerinde tutabilirsiniz.

Gelelim plist oluşturmaya.Plist’i iki türlü oluşturabilirsiniz. 1.si manuel olarak oluştururusunuz.İkinsici ise programsal olarak oluşturursunuz.Ben bu dersimde programsal olarak oluşturmayı anlatacağım.

Plist oluşturma:



    // directoryden pathleri alıyor ve array'e atıyoruz NSLog ile loglatıp inceleyebilirsiniz
    NSArray *paths = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES);
    // plisti kaydedeceğimiz document path i alıyoruz.Arrayin ilk değeri document pathi verir
    NSString *documentsPath = [paths objectAtIndex:0];
    // Data isminde plisti document pathin sonuna ekliyoruz
    NSString *plistPath = [documentsPath stringByAppendingPathComponent:@"Data.plist"];
    
    NSFileManager *fileManager = [NSFileManager defaultManager];
    //Data.plist adında bir dosya mevcut mu kontrol ediyoruz.Mevcut değilse oluşturuyoruz
    //Bu kontrolü yapmadan oluşturursak her seferinde üzerine yazarak yeniden aynı dosya boş bir şekilde oluşturulur
    if ([fileManager fileExistsAtPath:plistPath] == NO)
    {
        
        //Plist aslında dosya olarak tutulan bir NSDictionary'dir.Aynı NSDictionary gibi key value değeri tutar.NSDictionary farkı ise saklanabiliyor olması diyebiliriz.
        
        NSDictionary *dict = [NSMutableDictionary dictionary];
        [dict writeToFile:plistPath atomically: TRUE];
    }

Plist yazma:


    NSMutableDictionary *dict; //Değerleri değiştirilebilir NSDictionary = NSMutableDictionary
    // Yukarıdaki path işlemlerini yine yapıyoruz
    NSArray *paths = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsPath = [paths objectAtIndex:0];
    NSString *plistPath = [documentsPath stringByAppendingPathComponent:@"Data.plist"];
    
    dict = [[NSDictionary alloc]
            initWithContentsOfFile:plistPath];//NSMutableDictionary mizi direk Plist değerleri ile init ediyor yani başlatıyoruz diyebiliriz
    
    //[dict setObject:deger forKey:anahtar]; //dictionarymize yeni bir object set ediyoruz
    [dict setObject:@"Taha" forKey:@"isim"];
    [dict setObject:@"Kırca" forKey:@"soyisim"];
    [dict writeToFile:plistPath atomically: TRUE];//ve oluşturduğumuz değeri yine plist olarak kaydediyoruz

Plist okuma:

    NSDictionary *dict;

    //path işlemleri
    NSArray *paths = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsPath = [paths objectAtIndex:0];
    NSString *plistPath = [documentsPath stringByAppendingPathComponent:@"Data.plist"];
    //dictionarymizi plist değerleri ile init ettik
    dict = [[NSMutableDictionary alloc]
            initWithContentsOfFile:plistPath];
    //deger = [dict objectForKey:anahtar];
    NSString *isim = [dict objectForKey:@"isim"];//Taha dönecek
    NSString *soyisim = [dict objectForKey:@"soyisim"];//Kırca dönecek
      

Oluşan plist dosyasını incelemek isterseniz plistPath stringini NSLog ile loglatın ve simulatörle çalışıyorsanız bilgisayarınızın hangi pathinde bulunduğunu öğrenin.

Evet arkadaşlar bu derste anlatmak istediklerim bu kadar. Soru ve görüşlerinizi yorum olarak yazabilirsiniz.

Sizlerden ricamız facebook.com/mobilhanem sayfamızı beğenmenizdir. Birdahaki dersimizde görüşmek dileğiyle.

0
Exit mobile version