2012-06-17 17 views
6

Uygulamamda (iOS 5) Verileri kaydetmek istiyorum - Borçları kaydetmek istiyorum. Yani onun:Verileri iOS'a kaydetmenin en iyi yolu?

  • artı ya da eksi para
  • (borçlarınız varsa veya isim) para
  • miktarı ve borcu adı

Ama Don Verileri kaydetme (NSUserdefaults, Çekirdek veriler, SQLLite)

Belki de onları kaydetmenin en iyi yolu söyleyebilir misiniz?

+0

bağlantısının kaydedilmesidir. Kayıt olmak için kaç kayıt bekliyorsunuz? – Gruntcakes

+0

Kullanıcı tanımlı - bu yüzden bilmiyorum (sadece 4 olabilir - ama aynı zamanda 300). Kullanıcıya bağlı. – H3rrVorr4g3nd

cevap

10

Aygıtınıza az miktarda veri kaydetmenin en kolay yolu, NSUserDefaults kullanmaktır. Ancak sadece emlak listeleri bu şekilde kaydedilebilir. Bir özellik listesi 6 tip, NSNumber, NSString, NSArray, NSDictionary, NSDate, NSData nesnelerinin birleşimidir. Sizin durumunuzda, yapılması kolay. Eğer benzer bir şey okudum borçlarının readList için

#define DEBTS_LIST_KEY @"listOfAllDebts" 
#define DEBTOR_NAME_KEY @"debtorName" 
#define DEBT_AMOUNT_KEY @"amountOfDebt" 

-(void) saveDebt:(CGFloat) debtAmount forName:(NSString *) debtorName 
{ 
    // pointer to standart user defaults 
    NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults]; 
    // the mutalbe array of all debts 
    NSMutableArray * alldebtRecords = [[defaults objectForKey:DEBTS_LIST_KEY] mutableCopy]; 
    // create new record 
    // to save CGFloat you need to wrap it into NSNumber 
    NSNumber * amount = [NSNumber numberWithFloat:debtAmount]; 

    NSDictionary * newRecord = [NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects:amount,debtorName, nil] forKeys:[NSArray arrayWithObjects:DEBT_AMOUNT_KEY, DEBTOR_NAME_KEY, nil]]; 
    [alldebtRecords addObject:newRecord]; 
    [defaults setObject:alldebtRecords forKey:DEBTS_LIST_KEY]; 
    // do not forget to save changes 
    [defaults synchronize]; 
} 

: Örneğin, şu yöntemi kullanabilirsiniz yeni bir borç rekoru kaydedin.

Ancak temel verileri kullanmanızı öneririm. Daha esnek ve verilerinizi yönetmek için bu kodu yazmanız gerekmeyecek (varolan kayıtları düzenlemek veya silmek için). Örneğin, borç tarihini kaydetmek istediğinizde, modelinizi çok daha kolay genişletebilirsiniz. Bu,

+1

Daima Çekirdek Verileri hakkında düşündüm ... ama tüm öğreticilerin anlaması biraz zordu. Ama bağlantın bana gerçekten yardımcı oldu ve Core verilerini şimdi benim uygulamamda uygulayabilirim (gerçekten kolay o.O). Teşekkürler! :) – H3rrVorr4g3nd

+0

Core Data'da yeniyim ve bu eğitim benim için de çok faydalı oldu. Yardım edebileceğime sevindim. – Yarlik

3

kullanarak seri hale getirmek ve uygulaması ile büyüyecek Kullanın, SQLite tarafından desteklenebilen Çekirdek Verileri öneririm. Modern bir Xcode'ta (yani Xcode 4) çalışıyorsanız, modeller oluşturmak kolay ve grafikseldir. Eğer daha önce ORM çerçeveleri ile çalışmışsanız, sorgulama, vb. Arayüzü kavramak kolay olmalıdır.

Bazı öğreticiler için arama yapın, ancak Çekirdek Veri geliştirme son zamanlarda çok değiştiği için Xcode sürümünüzle eşleşen eğiticiler bulmak konusunda emin olun.

İlgili konular