簡體   English   中英

使用核心數據和NSManagedObject保存列表

[英]Using Core Data and NSManagedObject to save lists

我正在尋找有關如何為列表保存應用程序管理數據的一些建議。 本質上,我有兩種對象類型: ListListItem List對象如下所示:

@interface List : NSObject

@property (nonatomic, copy) NSString *name;
@property (nonatomic, copy) NSMutableArray *contents;
@property (nonatomic, copy) NSString *completed;
@property (nonatomic, strong) NSDate *creationDate;


-(id)initWithName:(NSString *)name contents:(NSMutableArray *)contents completed:(NSString *)completed date:(NSDate *)creationDate;

一個ListItem

@interface ListItem : NSObject

@property (nonatomic, copy) NSString *name;
@property (nonatomic, copy) NSString *completed;
@property (nonatomic, strong) NSDate *creationDate;

-(id)initWithName:(NSString *)name completed:(NSString *)completed date:(NSDate *)date;

@end

當前,我將這些列表保存在NSUserDefaults中的數組中,但是我設想執行諸如“按創建日期,類型或名稱對列表進行排序”之類的操作,我感覺好像會遇到困難。 因此,在繼續自己編寫這些方法之前,我想向大家提出一些問題:學習如何使用Core Data是否對我有意義? 它真的能為我提供更好的功能/更可靠的數據持久存儲方式嗎?

在此先感謝您的建議。

如果您的應用程序的主要重點是存儲基於這些對象的列表,那么我認為值得研究Core Data。 它使您可以根據條件更輕松地獲取多個列表(如果您以后決定做類似的事情),並且可以使您總體上更好地控制對存儲數據的操作。

有一些工具可以幫助使向Core Data的過渡變得不那么繁瑣例如mogeneratorMagical Record

您將需要的核心數據模型是非常基本的,並且在ListItem和List之間建立多對一關系對於您正在執行的操作來說是完美的。

祝好運!

絕對要選擇核心數據 您將看到,這將導致一個更加健壯和可擴展的應用程序。

最重要的缺點是您只能保存整個列表,效率很低。 最終,您將耗盡內存。 使用核心數據,您可以進行增量更新。

其次,NSUserDefaults基礎結構在類型方面不是很靈活,實際上是針對不同的東西。 您不是存儲首選項,而是存儲數據。

第三,正如您已經指出的那樣,排序和篩選既對資源造成壓力,又需要大量編碼。 您可以非常有效地對內存進行排序和過濾,但這不會導致代碼易於維護。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM