【发布时间】:2017-02-01 02:31:26
【问题描述】:
我最近将我的 iOS 应用程序项目更新到 iOS 10。现在我正在尝试更改我的应用程序的核心数据模型,但 Xcode 生成的新 NSManagedObject 子类已损坏。我也尝试修复子类手册,但这不起作用。
Core Data Model 的最低工具版本设置为 Xcode 7.0,代码生成语言设置为 Swift。
这是 Xcode 生成的代码:
import Foundation
import CoreData
import
extension Group {
@nonobjc public class func fetchRequest() -> NSFetchRequest {
return NSFetchRequest(entityName: "Group");
}
@NSManaged public var name: String?
@NSManaged public var platform: NSNumber?
@NSManaged public var profiles: NSOrderedSet?
}
// MARK: Generated accessors for profiles
extension Group {
@objc(insertObject:inProfilesAtIndex:)
@NSManaged public func insertIntoProfiles(_ value: SavedProfile, at idx: Int)
@objc(removeObjectFromProfilesAtIndex:)
@NSManaged public func removeFromProfiles(at idx: Int)
@objc(insertProfiles:atIndexes:)
@NSManaged public func insertIntoProfiles(_ values: [SavedProfile], at indexes: NSIndexSet)
@objc(removeProfilesAtIndexes:)
@NSManaged public func removeFromProfiles(at indexes: NSIndexSet)
@objc(replaceObjectInProfilesAtIndex:withObject:)
@NSManaged public func replaceProfiles(at idx: Int, with value: SavedProfile)
@objc(replaceProfilesAtIndexes:withProfiles:)
@NSManaged public func replaceProfiles(at indexes: NSIndexSet, with values: [SavedProfile])
@objc(addProfilesObject:)
@NSManaged public func addToProfiles(_ value: SavedProfile)
@objc(removeProfilesObject:)
@NSManaged public func removeFromProfiles(_ value: SavedProfile)
@objc(addProfiles:)
@NSManaged public func addToProfiles(_ values: NSOrderedSet)
@objc(removeProfiles:)
@NSManaged public func removeFromProfiles(_ values: NSOrderedSet)
}
编辑:这些是 Xcode 给出的具体错误:
1. Group+CoreDataProperties.swift:13:1: Expected identifier in import declaration (the empty import)
2. Group+CoreDataProperties.swift:13:11: 'Group' is ambiguous for type lookup in this context
3. Group+CoreDataProperties.swift:15:16: Cannot specialize non-generic type 'NSFetchRequest'
4. Group+CoreDataProperties.swift:26:11: 'Group' is ambiguous for type lookup in this context
4. Group+CoreDataProperties.swift:43:82: 'SavedProfile' is ambiguous for type lookup in this context
【问题讨论】:
-
您能解释一下是什么损坏了吗?是第 3 行的空导入吗?
-
@DavidAtkinson 是的,Xcode 给出了空导入的错误。我还在问题中添加了其他 4 个错误。
-
不幸的是,我认为这是 Xcode 8 和 8.1 beta 中的一个错误。如果您自动生成,它还会显示派生数据文件所在的位置,但 Xcode 正在寻找带有 .在文件名的开头。如果您手动修复该问题,则会收到虚假错误,例如您列出的错误。我还没有找到解决方法,我不敢相信更多的人没有发现这个错误,因为它似乎阻止了你在应用程序中处理核心数据。 openradar.me/27151410
-
@Longmang 谢谢你的解释。希望苹果能尽快针对这个问题发布更新。
标签: core-data nsmanagedobject ios10 xcode8