2012-06-17 38 views
6

Trong ứng dụng của tôi (iOS 5) Tôi muốn lưu dữ liệu - Tôi muốn tiết kiệm các khoản nợ. Vì vậy, nó:Cách tốt nhất để lưu dữ liệu vào iOS là gì?

  • cộng hoặc trừ tiền
  • số tiền
  • và tên người có các khoản nợ (hoặc tên, nơi bạn có các khoản nợ)

Nhưng tôi don Cách lưu dữ liệu (NSUserdefaults, Core data, SQLLite)

Có lẽ bạn có thể cho tôi biết cách tốt nhất để lưu chúng?

+0

Bạn muốn lưu bao nhiêu hồ sơ? – Gruntcakes

+0

Thats người dùng được xác định - vì vậy tôi không thể biết (chỉ có thể 4 - nhưng cũng 300). Phụ thuộc vào người dùng. – H3rrVorr4g3nd

Trả lời

10

Cách dễ nhất để lưu trữ lượng dữ liệu nhỏ trên thiết bị của bạn là sử dụng NSUserDefaults. Nhưng chỉ danh sách tài sản mới có thể được lưu theo cách này. Một danh sách thuộc tính là sự kết hợp của các đối tượng gồm 6 loại, NSNumber, NSString, NSArray, NSDictionary, NSDate, NSData. Trong trường hợp của bạn thật dễ dàng để làm. Ví dụ: để lưu bản ghi nợ mới, bạn có thể sử dụng phương thức sau:

#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]; 
} 

Để đọcDanh sách các khoản nợ bạn đã đọc tương tự.

Nhưng tôi khuyên bạn nên sử dụng dữ liệu cốt lõi. Nó linh hoạt hơn và bạn sẽ không phải viết tất cả mã này để quản lý dữ liệu của mình (để chỉnh sửa các bản ghi đã tồn tại hoặc để xóa chúng). Bạn sẽ có thể mở rộng mô hình của bạn dễ dàng hơn nhiều, ví dụ, khi bạn muốn lưu ngày của khoản nợ. Đây là liên kết tới a good tutorial

+1

Luôn luôn suy nghĩ về dữ liệu cốt lõi .. nhưng tất cả các hướng dẫn có một chút khó hiểu. Nhưng liên kết của bạn thực sự đã giúp tôi và tôi có thể triển khai dữ liệu cốt lõi vào ứng dụng của tôi ngay bây giờ (thật dễ dàng o.O). Cảm ơn! :) – H3rrVorr4g3nd

+0

Tôi mới sử dụng Core Data và hướng dẫn này rất hữu ích đối với tôi. Tôi rất vui vì tôi có thể giúp. – Yarlik

3

Nếu số lượng hồ sơ là người dùng định nghĩa, và sẽ phát triển cùng với ứng dụng sử dụng, tôi đề nghị Core Data, có thể được hỗ trợ bởi SQLite. Nếu bạn đang làm việc trong một Xcode hiện đại (ví dụ Xcode 4), việc tạo mô hình dễ dàng và đồ họa. Nếu bạn đã từng làm việc với các khung công tác ORM trước đây, giao diện để truy vấn, v.v. phải dễ nắm bắt.

Tìm kiếm xung quanh một số hướng dẫn, nhưng phải cụ thể về việc tìm hướng dẫn phù hợp với phiên bản Xcode của bạn, vì việc phát triển Core Data đã thay đổi rất nhiều trong thời gian gần đây.

Các vấn đề liên quan