EDIT - Ceci n'est pas un doublon. Même après que toutes les connexions ont été faites correctement, j'ai toujours cette erreur. Les actions visant à corriger ce problème devaient également être complétées dans un ordre spécifique. Voir la réponse marquée comme réponse.cette classe n'est pas compatible avec le codage de valeur de clé pour la clé (j'ai changé un nom de fichier dans Storyboard)
J'ai changé un nom de fichier dans Storyboard et tout s'est cassé. Je reçois l'erreur "cette classe n'est pas conforme à la valeur clé codage-conforme pour la clé" mais je ne pense pas que c'est en fait le problème. J'ai un viewcontroller nommé Draft et un autre viewcontroller nommé Draft2. Sur mon storyboard, j'ai changé le nom de fichier de Brouillon en Brouillon3, puis Brouillon2 en brouillon. J'ai changé les noms des classes respectivement, puis j'ai supprimé les pages et les ai recréées. J'ai également changé les identifiants Title et Storyboard du contrôleur de vue respectivement. Je ne me soucie pas vraiment de Draft3 car il sera éventuellement supprimé mais j'ai besoin de Draft (la nouvelle version) pour fonctionner.
J'ai reconnecté toutes les prises pour le nouveau Viewcontroller nommé Draft. J'ai aussi essayé de nettoyer le programme (cmd + shift + k). J'ai essayé d'enregistrer et de fermer.
Que se passe-t-il ici?
Cela fait partie de mon projet viewController
class Draft: UIViewController, UICollectionViewDelegate, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout, UISearchBarDelegate {
@IBOutlet weak var battlegroundName: UILabel!
@IBOutlet weak var draftStatus: UILabel!
@IBOutlet weak var draftNotes: UILabel!
@IBOutlet weak var collectionHeroPool: UICollectionView!
@IBOutlet weak var collectionTeam1Bans: UICollectionView!
@IBOutlet weak var collectionTeam2Bans: UICollectionView!
@IBOutlet weak var collectionTeam1Picks: UICollectionView!
@IBOutlet weak var collectionTeam2Picks: UICollectionView!
@IBAction func undoButton(sender: AnyObject) {
self.navigationController?.popViewControllerAnimated(true)
self.navigationController?.navigationBarHidden = false
//dismissViewControllerAnimated(false, completion: nil)
}
var team1First = true
var battleground: Battleground!
var team1 = [Hero]()
var team2 = [Hero]()
var turn = 1
var team1Active = true
var activeTeam = [Hero]()
var team1Bans = [Int: Hero]()
var team2Bans = [Int: Hero]()
var team1Picks = [Int: Hero]()
var team2Picks = [Int: Hero]()
var bans1 = [1,9]
var bans2 = [2,8]
var picks1 = [3, 6, 7, 12, 13]
var picks2 = [4, 5, 10, 11, 14]
var pickedHeroes = [Hero]()
override func viewDidLoad() {
super.viewDidLoad()
let value = UIInterfaceOrientation.LandscapeLeft.rawValue
UIDevice.currentDevice().setValue(value, forKey: "orientation")
self.navigationController?.navigationBarHidden = true
battlegroundName.text = battleground.name
Ce code est dans mon predraft que segues au projet de
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "preDraftToDraft3" {// if this is the segue being loaded with this identifier
if let detailsVC = segue.destinationViewController as? Draft3 { // grab the view control we will go to and cast it as the hero detail class
detailsVC.team1First = team1First!
//print(selectedMap!.name)
detailsVC.battleground = selectedMap
//print(detailsVC.battleground.name)
}
}
if segue.identifier == "preDraftToDraft" {// if this is the segue being loaded with this identifier
if let detailsVC = segue.destinationViewController as? Draft { // grab the view control we will go to and cast it as the hero detail class
detailsVC.team1First = team1First!
//print(selectedMap!.name)
detailsVC.battleground = selectedMap
//print(detailsVC.battleground.name)
}
}
}
@IBAction func startDraft(sender: AnyObject) {
if team1First != nil && selectedMap != nil {
performSegueWithIdentifier("preDraftToDraft", sender: nil)
}
}
Merci, Cela a fonctionné, je n'aurais jamais compris qu'il y a un ordre "nécessaire". – Apple