Tôi đang viết một ứng dụng Cookbook và tôi không thể tìm thấy bất kỳ thứ gì về cách lưu dữ liệu của lớp tôi đã tạo (lớp Công thức). Cách duy nhất tôi đã nhìn thấy sẽ là để có thể lưu nội dung của lớp này như một toàn thể mà không lưu riêng rẽ mọi phần tử của lớp cho từng đối tượng bằng cách làm cho phương pháp này cho lớp Recipe tôi:Làm cách nào để lưu đối tượng Objective-C không phải là đối tượng danh sách thuộc tính hoặc có cách nào tốt hơn cho danh sách thuộc tính này?
-(void) writeToFile:(NSString *)file atomically:(BOOL)atomic{
}
Nhưng tôi có hoàn toàn không có ý tưởng làm thế nào tôi muốn đi về việc thực hiện điều này để lưu đối tượng này vào một tập tin bằng cách sử dụng phương pháp này. Một số thuộc tính là:
NSString* name;
UIImage* recipePicture;
NSDate* dateAdded;
NSMutableArray* ingredients; //The contents are all NSStrings.
Có ai biết cách tiết kiệm một đối tượng của lớp Công thức không? Điều đó khiến tôi phát điên vì không thể hình dung ra được. Mọi sự trợ giúp sẽ rất được trân trọng. Tôi đã có một .plist mang tên "RecipeData.plist". Tôi chỉ cần viết mọi thuộc tính cho plist và khởi tạo một đối tượng mới của công thức với các thuộc tính đó trong thời gian chạy?
Bạn nên cập nhật điều này với hai phần ba câu trả lời khác - cách mã hóa nó thành đối tượng NSData để lưu trữ trong danh sách thuộc tính và cách giải mã dữ liệu từ danh sách thuộc tính. – rmaddy
Như tôi đã nói trong phần bình luận dưới đây, cảm ơn các bạn đã dành thời gian để chỉ cho tôi cách làm điều này. Nó thực sự là một trợ giúp lớn. – crarho
Bạn nên gọi 'self = [super initWithCoder: coder];' thay vì 'self = [super init];'. Nếu không, lớp cha của bạn sẽ không có dữ liệu được mã hóa của nó. –