【问题标题】:How to create relational object in Objective-c for iPhone如何在 Objective-c for iPhone 中创建关系对象
【发布时间】:2010-11-04 09:50:05
【问题描述】:

这是我的对象的接口:

@interface MyItem : NSObject {
 sqlite3 *database;
 NSInteger *primaryKey;
 NSInteger *accountKey;
 NSInteger *categoryKey;
 NSString *title;
 BOOL hydrated;
 BOOL dirty;
 NSData *data; // Why do I need this?
}

主键将在 Sqlite 中自动生成,我将整数、帐户和类别的外键存储在 MyItem 表中。

帐户和类别将有一个有意义的描述。 我也应该为描述添加属性吗?像这样:

NSString *accountDesc;
NSString *categoryDesc;

这样我就可以在我的 Hydrate 方法中加入类别和帐户。

这样做的最佳做法是什么?

我的目标是在应用程序的初始启动时,我将显示一个带有标题和类别描述的 Tableview。

【问题讨论】:

    标签: iphone objective-c core-data properties


    【解决方案1】:

    为什么不使用核心数据?届时,您将获得最佳实践 - 再加上它速度快,而且还有很多其他好处。

    核心数据会为您创建具有公开属性的对象 - 并处理关系 - 并延迟加载对象以使内存管理更加轻松。你的代码也变得更容易阅读了。

    【讨论】:

    • 我是 Obj-C 的新手,您如何使用核心数据以及它与我的问题有何关系?为了解决我的问题,我该如何使用核心数据呢?我使用 Sqlite Books 示例作为指南。
    • Core Data 是访问 sqlite 的标准接口——它仅在 OS 3.0 中引入,并且确实比 sqlbooks 示例中的 ObjC 和 C 的混合更容易使用。您应该在文档中找到名为 Locations 的示例代码,并且还有很多关于 Core Data 函数的其他文档。 Core Data 是一个来自 OS X 的库,在 mac 上被广泛使用。您可以直观地设计数据模型,然后它会为您生成类。您询问了最佳实践,Core Data 现在是最佳实践。
    • 哇!感谢您指出核心数据!我一直在查看文档,它看起来类似于我在 C# 中使用的 ADO.NET 实体数据模型。
    • 当然,它早于 ADO.NET 实体框架和微软在该领域的其他几项努力相当长的一段时间。 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-05
    相关资源
    最近更新 更多