ios - CoreData,定义模型,静态数据

标签 ios core-data

我有一个应用程序,我需要在其中维护 ORM 类型的模型,并表示一个实体(其中有图像、一些文本字段)。客户希望我将 tyoe (实体)的一些项目合并到应用程序的构建中,因此它们在下载时应该可用,并让用户能够下载更多项目。我想到使用核心数据并创建一个模型。 我的问题是: 1:这是一个好方法吗? 2:如果我做这个模型,并定义这个实体,我可以在Xcode中手动输入Entity类型的静态项吗?因为它们在本地可用,所以我不想在某些 UIView 的 viewdidload 方法中循环它们!。这有点像在定义表后使用 SQL 数据库,您可以在该数据库中输入行。

最佳答案

您可以实现逻辑(在代码中)以将默认实体对象插入核心数据持久性存储中,然后仅在数据库启动时为空时才执行该逻辑。您可以将此检查添加到任何 Core Data 项目的 Xcode 生成的应用程序委托(delegate)中,执行如下操作:

- (NSManagedObjectContext *)managedObjectContext
{
    if (_managedObjectContext != nil) {
        return _managedObjectContext;
    }

    NSPersistentStoreCoordinator *coordinator = [self persistentStoreCoordinator];
    if (coordinator != nil) {
        _managedObjectContext = [[NSManagedObjectContext alloc] init];
        [_managedObjectContext setPersistentStoreCoordinator:coordinator];
    }

    // Beginning of code added to Xcode-generated app delegate
    NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Entity"];
    NSArray *results = [_managedObjectContext executeFetchRequest:request error:NULL];
    if ([results count] == 0) {
        // Call method to insert default entities
    }
    // End of code added to Xcode-generated app delegate

    return _managedObjectContext;
}

插入默认实体的最佳方法取决于有多少实体、它们更改的可能性等。同样,如果有很多实体,我上面包含的查询也不是理想的,因为我正在获取他们只是为了看看有没有。这只是让您了解该方法,并且必须根据特定的数据量进行优化。

关于ios - CoreData,定义模型,静态数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17004216/

相关文章:

arrays - Swift:CoreData 和一个带有数组的对象

core-data - 核心数据 : Observing new Entity of certain type

iphone - 在 iphone 的缩略图中显示视频时长

ios - Xamarin Studio iOS 构建需要几分钟时间

ios - 后台位置的核心数据更新位置导致 UI 阻塞

ios - XE7 iOS 部署 UUID 报错

ios - 我的演示中什么也没有出现

cocoa - 静态库中的 MagicalRecord : how do I load the data model?

ios - 使用 swift : [SimpleRunner. 运行 setTime:] 时出现核心数据错误:无法识别的选择器发送到实例

objective-c - KVO和Core Data,通过观察只获取变化的值