SORU
8 ŞUBAT 2011, Salı


-[NSUserDefaults registerDefaults:] ne işe yarar?

Arasındaki fark nedir:

[[NSUserDefaults standardUserDefaults] registerDefaults:
  [NSDictionary dictionaryWithObjectAndKey:anObject, @"something"]];

Ve bu:

[[NSUserDefaults standardUserDefaults] setObject:anObject forKey:@"something"];

CEVAP
8 ŞUBAT 2011, Salı


Fark, ilk kullanıcı için herhangi bir değişiklik yapmadı. kullanılacak varsayılan kayıt kod parçacığını"". özellik

Çok istiyorsanız sağlamak diyelim ki bir "özellik" anahtar adı 'Hoşgeldiniz', olabilir yerine sahip malları iade nil Ekle varsayılan ileti 'Hoş Geldin ilk kez kullanıcı' görüntülenir zaman vardı, hiçbir değişiklik için özelliği.

Bu "özellik" sıfır döndürür ve eğer bu durumda bir mesaj daha yapın. bu kontrol etmek için if bir test yazmana gerek yok çünkü mantık kolaylaştıracaktır

NSString *greeting = [[NSUserDefaults standardUserDefaults] stringForKey:@"Greeting"];

if(greeting == nil) {
    NSLog(@"Welcome first-time user!");
}

Kod parçacığını yayınlanan ikinci özelliği başka bir değere ayarlanması için kullanılır. Farklı set yöntemleri () setString, setObject, setBoolean değerleri Userdefaults program durumuna göre ayarlamak gerekir.

Yorum istediğiniz gibi DÜZENLEYİN-----Güncelleştirmeleri.

İlk yöntem, adından da anlaşılacağı gibi varsayılan değerler kaydediliyor. İlk kez bazı temel adı ile mülkiyet erişim değeri ya da nesneler için nil, numaralarını mantıksal veya 0 yanlış. Yerine yapıyor bir sürü testler ve eğer öyleyse değerleri değil ayarlanmış program, ve o zaman bir şeyler yap "varsayılan" eylem gibi yukarıdaki örnekte, gemi uygulama ile bazı önceden tanımlanmış değerler için Bu anahtarları.

Bu registerDefaults koymak için tipik bir yer appDelegate içerisinde başlatıcı yöntemi.

Sonra programın başka bir yere, bu alanların değerleri ayarlamak isteyebilirsiniz sonra setObject, setString, setBoolean...ve almak için stringForKey, objectForKey et

Bu gibi düşünün

Bu registerDefaults nesne için mantıklı değerler kaynağı olabilir, yapıcı, aksi zaten yazdığı bazı varsayılan olsun. Eğer kullanmadığınız nesne özelliklerini değiştirmek isterseniz, daha sonra "yapıcı" ama set/get metotları.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • André Frizzo

    André Frizz

    16 Aralık 2006
  • Friday Night Cranks

    Friday Night

    27 Mayıs 2007
  • Kyletiv7

    Kyletiv7

    28 Mayıs 2007