gpt4 book ai didi

ios - 使用 Couchbase Lite 在 Mac 应用程序中保存树形数据结构

转载 作者:行者123 更新时间:2023-12-03 17:21:41 32 4
gpt4 key购买 nike

我在我的 Mac 应用程序中使用 couchbase lite。我有一个源列表,以树形数据结构显示类别。每个类别都是一个对象,该对象具有标题和一个可变数组的 Children 属性。

模型标题看起来像这样:

#import <CouchbaseLite/CouchbaseLite.h>

@interface SBCategory : CBLModel <NSPasteboardWriting, NSPasteboardReading>

@property(copy) NSString* uuid;
@property(copy) NSString* title;
@property(copy) NSDate* created_at;
@property(assign) BOOL isHeader;
@property (readonly, copy) NSMutableArray* children;

@end

我没有使用 nstreecontroller,只是使用上面提到的对象数组。我真的绞尽脑汁不知道如何将其存储在数据库中。我应该单独存储每个对象吗?我应该尝试将整个结构序列化为 json 并存储它吗?我应该使用树 Controller 吗?是否提供保存数据的辅助方法?非常感谢对此的建议。我真的很想听听一些 SOF 专家的意见,他们会如何做到这一点。

最佳答案

您可以将每个模型单独存储在 CBL 文档中。您只需要保留对根模型的引用或保留其 documentId。

您还可以使用嵌套模型将完整的树存储在单个文档中。您必须将声明更改为:

@interface SBCategory : NSObject <CBLJSONEncoding, NSPasteboardWriting, NSPasteboardReading>

要查看 CBLJSONEncoding 的使用示例,您可以下载 CBL 源代码。但是,在最后一种情况下,对嵌套模型之一的任何更改都将导致整个模型树被重写。相反,如果同时从多个设备修改树,则更容易确保一致性,因为只有一个文档。 CBLJSONEncoding 比较棘手,但在 NoSql 数据库中非常有用。

关于ios - 使用 Couchbase Lite 在 Mac 应用程序中保存树形数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23919439/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com