2015-02-13 19 views
5

Bir kullanıcının oturum açtıktan sonra görüntüleyebileceği büyük miktarda mağazayı depolamak için zaten Core Data'yı kullandığım bir uygulama var. Şu anda uygulamanın oturum açma bölümünü uygulamıyorum ve Birçok ilgili soruyu inceledim. Çoğu, hassas olmayan kullanıcı verilerini depolamak için NSUserDefaults kullanılmasını önermektedir. Ad, soyadı, e-posta, profil resmi ve belki de adres gibi şeyler depolamayı planlıyorum. Liste gelecekte büyüyebilir. Sorum şu ki, tek bir kullanıcı nesnesini saklamak için Temel Veri Modelimde bir Kullanıcı entity oluşturmak için geçerli bir seçenek mi, yoksa kötü bir uygulama olacak ve ben sadece NSUserDefaults ile yapmalı mıyım? Zaten her şeyi kurduğumdan ve uygulamaya daha fazla karmaşıklık katamayacağından, Çekirdek Verileri kullanmak için cazip geldim.Core Data vs NSUserDefaults kullanıcı verilerine giriş için

cevap

3

Son bir uygulama geliştirirken çok benzer bir durumdaydım. NSUserDefaults'un, kullanıcı bilgilerinin saklanması için daha uygun bir çözüm olduğunu buldum, çünkü açık bir şekilde kullanılması gerekiyordu. Üzerinde Apple documentation belirtildiği gibi, 'NSUserDefaults sınıfı, varsayılan sistemle etkileşim için programatik bir arabirim sağlar. Varsayılan sistem, bir uygulamanın davranışını kullanıcının tercihleriyle eşleşmesi için özelleştirmesine izin verir. '

Deneyimlerimden, Core Data yerine kullanıcı bilgilerini depolamak için NSUserDefaults kullanmanın çok daha az kod içermesi anlamına geliyordu. Ayrıca, kullanıcı her zaman uygulamanızda oturum açtığında Çekirdek Veri deposuna erişmek zorunda kalmazsınız.

Referans olarak, NSUserDefaults'ı nerede kullanacağımı öğrendiğimde this ve this kullandım.

+2

Sonunda NSUserDefaults kullandım, sağladığınız bağlantılar oldukça kullanışlıdır. Teşekkürler! – Georgi

4

Her iki şeyi de yaptım, fakat benim için kullanıcıımı CoreData'da saklamak ve kullanıcı kimliğimi NSUserDefault s'ye kaydetmek daha iyi bir çözümdü. Bunu yaptım çünkü sunucu yanıtını ayrıştırmak için hem Mantle hem de Overcoat kullanıyordum ve kullanıcım uygulamanın diğer kullanıcılarıyla tam olarak aynı yapıya sahipti.

+0

İyi cevap burada. Devletler tüm doğru bilgileri - Sunucu tarafı erişimi ve yerel erişim –

0

Şu anda yalnızca bir kullanıcınız olmasını planlıyorsanız, NSUserDefault ile gideceğim. Uygulamalarımızdan birinde, aynı anda çalışan birden çok kullanıcı hesabını yönetme yeteneğine sahip olmamız gerekiyor. Her kullanıcı için UserId adını isim tanımlayıcısı olarak kullanan farklı bir db oluşturduk. Her kullanıcının için uygulamasının durumunu hatırlamamıza izin verin. Bu yüzden cevabın senaryoya bağlı olacağını düşünüyorum. Sadece değerli bilgileri kullanıcıDefault'a kaydetmeyi unutmayın. Belki de uygulama anahtarlığına kaydedilmişse, e-posta, kullanıcı adı vb. Gibi şeyler daha iyi olurdu. Anahtar sözcüğün kaydedilmesini ve alınmasını bir sözlüğe erişim kadar kolay hale getiren bazı bölmeler vardır.

İyi şanslar.

İlgili konular