【问题标题】:What wrong with my Core Data model?我的核心数据模型有什么问题?
【发布时间】:2017-01-14 07:56:09
【问题描述】:

我是 CoreData 的新手,无法理解我的模型有什么问题。当我尝试将持久存储添加到存储协调器时发生错误:

NSPersistentStore *persistentStore = [self.persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:options error:error];

这是一个日志和错误:

> CoreData: sql: CREATE TABLE ZMANAGEDOBJECT ( Z_PK INTEGER PRIMARY KEY,
> Z_ENT INTEGER, Z_OPT INTEGER, ZSECTION.ARTICLES INTEGER, ZTITLE
> INTEGER, ZBOOK.AUTHOR INTEGER, ZNAME INTEGER, ZAUTHOR INTEGER,
> ZPUBLISHER INTEGER, ZSUBTITLE INTEGER, ZTITLE1 INTEGER, ZAUTHOR1
> INTEGER, ZTEXT INTEGER, ZTITLE2 INTEGER, Z_FOK_SECTION.ARTICLES
> INTEGER, ZCREATEDAT TIMESTAMP, ZUPDATEDAT TIMESTAMP, ZID_ VARCHAR,
> ZTYPE BLOB, ZCONTENT BLOB, ZATTRIBUTES BLOB, ZCOVER BLOB, ZIMAGE BLOB
> )

> CoreData: annotation: Disconnecting from sqlite database due to an
> error.

> CoreData: error: (1) I/O error for database at
> /Users/firuznarzikulov/Library/Application
> Support/BahaiAppAdmin/BahaiAppAdmin.sqlite

Error Domain=NSCocoaErrorDomain Code=256 "文件不能被
已打开。” UserInfo={NSSQLiteErrorDomain=1, NSUnderlyingException=I/O
/Users/user/Library/Application
处的数据库错误 支持/App/database.sqlite。 SQLite 错误代码:1,
'靠近“。”:语法错误'}

这是我的模型图:

ManagedObject 是抽象实体,也是除LocalizedString 之外的所有其他实体的父实体。

感谢任何帮助和想法!

【问题讨论】:

    标签: ios macos sqlite core-data


    【解决方案1】:

    尝试重命名不带“.”的关系。

    通常的模式是例如“authorName”表示一对一关系,“authorNames”表示一对多关系。

    【讨论】:

    • 是的,它有帮助! ) 虚拟错误。谢谢兄弟!
    • 另一个提示是,真的,我认为在 CD 实体前面加上 CD 是个好主意,所以,CDAuthor、CDBook 等。通常我讨厌名称前缀,但在不寻常的 CD 情况下我认为作品。不可避免地,您的项目还有其他名称为 Author 等的东西。“CD ..”前缀策略确实很有帮助。国际海事组织。
    猜你喜欢
    • 2012-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-27
    • 1970-01-01
    • 2015-05-20
    相关资源
    最近更新 更多