创建 NSManagedObject 子类...在我的项目中创建一个新错误
Posted
技术标签:
【中文标题】创建 NSManagedObject 子类...在我的项目中创建一个新错误【英文标题】:Create NSManagedObject Subclass... make a new Error in my project 【发布时间】:2018-11-01 15:24:13 【问题描述】:我想通过 Editor\Create NSManagedObject Subclass... 菜单为我的实体添加一个类。但是当我添加它时,项目出错了,这是消息:
Multiple commands produce '/Users/mohsenkhodadadzadeh/Library/Developer/Xcode/DerivedData/walk-fcnteanemrfigmfaalqkvwigvwqc/Build/Intermediates.noindex/walk.build/Debug-iphonesimulator/walk.build/Objects-normal/x86_64/WalkEntity+CoreDataProperties.o':
1) Target 'walk' (project 'walk') has compile command for Swift source files
2) Target 'walk' (project 'walk') has compile command for Swift source files
Multiple commands produce '/Users/mohsenkhodadadzadeh/Library/Developer/Xcode/DerivedData/walk-fcnteanemrfigmfaalqkvwigvwqc/Build/Intermediates.noindex/walk.build/Debug-iphonesimulator/walk.build/Objects-normal/x86_64/WalkEntity+CoreDataClass.o':
1) Target 'walk' (project 'walk') has compile command for Swift source files
2) Target 'walk' (project 'walk') has compile command for Swift source files
我在 File->Project settings 中将该构建系统更改为 Legacy Build 系统。但它还没有工作
这个项目是用 xcode9 制作的,我现在用 xcode 10 开发它
【问题讨论】:
【参考方案1】:在项目导航器中选择xcdatamodeld
文件,选择实体并按⌥⌘3 - 在Xcode 13 ⌥⌘4 - 显示数据模型检查器.
如果您手动创建了类,则必须将Codegen
弹出窗口设置为Manual/None
,否则会隐式创建类文件。
【讨论】:
我还必须清理构建文件夹并重新启动 xcode 才能识别我的新手动创建的类。 似乎不公平,我只能在这个答案上投票一次?。谢谢 清理后,我必须先构建它,然后再运行它才能工作。 Clean 是 Shift + Command + K,构建是 Shift + Command + B。感谢 Apple ;) 对我有用,但有一些操作。如果您使用 Class codegen 创建文件,请删除它们,设置 Manual codegen 并清理项目,然后构建。完成此步骤后,一切正常。【参考方案2】:在 Xcode 11
1.从Build Phases > Copy Bundle Resources
删除信息列表
2.从Build Phases > Compile Sources
删除创建的子类
如果运行不正常,请使用旧版构建设置
发件人:File > Project Settings > build settings > legacy build settings
【讨论】:
以上是关于创建 NSManagedObject 子类...在我的项目中创建一个新错误的主要内容,如果未能解决你的问题,请参考以下文章
尝试在 iOS 中基于 NSString 值动态创建 NSManagedObject 子类
Xcode 和核心数据 - “创建 NSManagedObject 子类”
新的 NSManagedObject 子类与新的 NSObject 子类?
CoreData 使用父实体创建 NSManagedObject 子类