有许多事情需要关注CoreData,但我觉得数据导入不是其中之一.我对您用于导入/升级策略的内容有一些疑问,我很乐意听取您的意见.
关于如何提供初始数据库内容,有一些思想流派.有些人会在第一次运行时从文件中导入数据,而其他人则会提供在首次运行时复制和使用的数据存储 - 这是我个人所做的.如果还有其他选择,我很乐意听到.
我对这些方法的问题是在推送升级时该怎么做.当您将数据添加/更改/删除到您希望现有用户看到的初始数据集时,您会怎么做?
是否存储使用中的数据模型的版本NSUserDefaults,然后在首次运行新版本时执行一些迁移代码以插入/更新默认数据?我在这里严格谈论数据,而不是架构.所有这一切看起来都很糟糕,因为我可以看到低收视率的浪潮,因为你在编写升级代码时没有想到什么.存储默认应用程序数据(用户没有真正修改)甚至是一件好事CoreData吗?
所以我想我的问题是,您首选的导入策略是什么?在发布未来版本时,您通常如何升级数据?
我在各个类中使用了几个类别Objective-C,我想知道在导入这些类别的地方被认为是最佳实践吗?例如,这是一个很好的类别NSDate.我有两个选择:
我只在我使用它的文件中导入此类别.我之所以抵制这一点,只是因为我觉得它会在我的脑子里引入混乱#imports.我喜欢它们简洁而有意义.
我在前缀标题中导入此类别,并在整个应用程序中随意使用它.我抵制这一点,因为它感觉全球变量.但话说回来,类别不是状态,它们只是行为.
我很想知道一个更大的团队如何在编码标准和他们选择的标准的具体原因中处理这个问题.
提前致谢!
这是我模型的相关部分:

这里是我的模型类的代码:
/// <summary>
/// Retrieves a list of vans for binding with the BeachReach Snapshot
/// grid. Note: This method uses a POCO class that does not participate
/// in management by the entity context. See the DisplayVan class for more info
/// </summary>
/// <param name="setVanIDs">
/// You may limit which vans will be returned by passing a hash
/// set of their van IDs here
/// </param>
/// <returns>List of type DisplayVan - Unmanaged</returns>
public static List<DisplayVan> …Run Code Online (Sandbox Code Playgroud) 我在MySQL日志中看到以下错误:
[Warning] InnoDB: Cannot add field `wd_field_ft_95_240` in table `tmp`.`#sql_1_0` because after adding it, the row size is 8155 which is greater than maximum allowed size (8126) for a record on index leaf page.
这个tmp数据库是某种内部MySQL结构吗?这是我需要关心的事吗?
.net ×1
c# ×1
categories ×1
core-data ×1
innodb ×1
ios ×1
mysql ×1
objective-c ×1
temp-tables ×1
xcode ×1