J'ai récemment mis à jour mon projet d'application iOS vers iOS 10. J'essaie maintenant de modifier le Core Data Model de mon application, mais les nouvelles sous-classes NSManagedObject générées par Xcode sont cassées. J'ai également essayé de corriger les sous-classes manuellement mais cela ne fonctionne pas.
La version minimale des outils pour le Core Data Model est définie sur Xcode 7.0 et le langage de génération de code est défini sur Swift.
C'est le code que Xcode génère :
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)
}
Edit : Ce sont les erreurs spécifiques que Xcode donne :
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
0 votes
Pouvez-vous expliquer ce qui est cassé ? Est-ce l'importation vide à la ligne 3 ?
0 votes
@DavidAtkinson Oui, Xcode donne une erreur pour l'importation vide. Il y a également 4 autres erreurs que j'ai ajoutées à la question.
4 votes
Malheureusement, je pense que c'est un bug dans Xcode 8 et 8.1 beta. Il se manifeste également lorsque les fichiers de données dérivées sont présents, si vous les générez automatiquement, mais Xcode recherche les fichiers avec un . au début du nom du fichier. Si vous corrigez manuellement ce problème, vous obtenez alors de fausses erreurs, comme celles que vous avez énumérées. Je n'ai pas encore trouvé de solution et je ne peux pas croire que plus de personnes n'ont pas trouvé cette erreur car elle semble vous empêcher de travailler avec les données de base dans une application. openradar.me/27151410
0 votes
@Longmang Merci pour votre explication. J'espère qu'Apple publiera bientôt une mise à jour pour ce problème.