web-dev-qa-db-fra.com

setValue: forUndefinedKey: cette classe n'est pas compatible avec le codage de valeur de clé pour la clé

Je crée un identifiant pour voir les tickets de support. La première vue est la vue du ticket, et si vous n'êtes pas connecté, vous passerez à l'écran de connexion. Cependant je reçois ceci:

Support [3209: 18e03] * Application terminée en raison de l'exception non capturée 'NSUnknownKeyException', raison: '[setValue: forUndefinedKey:]: cette classe n'est pas conforme à la codification de la valeur clé pour la clé LoginScreen.' *

Pile premier appel de lancer: (0x1f17012 0x1634e7e 0x1f9ffb1 0x10e1711 0x1062ec8 0x10629b7 0x108d428 0x7990cc 0x1648663 0x1f1245a 0x797bcf 0x65ce37 0x65d418 0x65d648 0x65d882 0x669235 0x8683d2 0x6664f3 0x666777 0x6667b7 0x9d1fe2 0x9c3ad9 0x65e422 0x2b15 0x65f753 0x65fb2f 0x661286 0x65fe3f 0x592910 0x592895 0x5926e5 0x1edfafe 0x1edfa3d 0x1ebd7c2 0x1ebcf44 0x1ebce1b 0x22aa7e3 0x22aa668 0x57c65c 0x1f0d 0x1e35) libc + + abi.dylib: terminer appelé en lançant une exception

Voici mon code pour LoginScreen.m

#import "UIAlertView+error.h"
#import "LoginScreen.h"
#import "API.h"
#include <CommonCrypto/CommonDigest.h>

#define sayWhat @"REMOVEDFORSECURITY"


@implementation LoginScreen

-(void)viewDidLoad {
    NSLog(@"Found me!");
    [super viewDidLoad];


    //focus on the username field /show keyboard
    [fldUsername becomeFirstResponder];
}


- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
        // Return YES for supported orientations
        return (interfaceOrientation == UIInterfaceOrientationPortrait);
    }

    -(IBA

ction)btnLoginRegisterTapped:(UIButton*)sender {
    if (fldUsername.text.length < 4 || fldPassword.text.length < 4){
        [UIAlertView error:@"Enter username and password over 4 chars each."];
        return;
    }

    //very basic encryption called "salting"
    NSString* saltedPassword = [NSString stringWithFormat:@"%@%@", fldPassword.text, sayWhat];

    //prep the hashed storage
    NSString* hashedPassword = nil;
    unsigned char hashedPasswordData[CC_SHA1_DIGEST_LENGTH];

    //actually hash this
    NSData *data = [saltedPassword dataUsingEncoding: NSUTF8StringEncoding];
    if (CC_SHA1([data bytes], [data length], hashedPasswordData)){
        hashedPassword = [[NSString alloc] initWithBytes:hashedPasswordData length:sizeof(hashedPasswordData) encoding:NSASCIIStringEncoding];
        } else {
            [UIAlertView error:@"Password can't be sent"];
                return;
        }

    NSMutableDictionary* params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
        fldUsername.text, @"username",
                                   hashedPassword, @"password", nil];
    //here is the web call finally!
    [[API sharedInstance] commandWithParams:params
                               onCompletion:^(NSDictionary *json){
        //returned result
       NSDictionary* res = [[json objectForKey:@"result"] objectAtIndex:0];

        if([json objectForKey:@"error"]==nil && [[res objectForKey:@"userid"] intValue]> 0) {
                                       //success
        } else {
                                       //error'
        [UIAlertView error:[json objectForKey:@"error"]];
                                   }

    }];


}
@end

et LoginScreen.h

#import <UIKit/UIKit.h>

@interface LoginScreen : UIViewController {
//the login form fields
IBOutlet UITextField* fldUsername;
IBOutlet UITextField* fldPassword;

}

//action for when either button is pressed
-(IBAction)btnLoginRegisterTapped:(id)sender;

@end


    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.Apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="2.0" toolsVersion="2844" systemVersion="12C60" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" initialViewController="A8c-eR-geg">
    <dependencies>
        <plugIn identifier="com.Apple.InterfaceBuilder.IBCocoaTouchPlugin" version="1930"/>
    </dependencies>
    <scenes>
        <!--Tickets View - View Tickets-->
        <scene sceneID="aIJ-Wx-2Yy">
            <objects>
                <viewController title="View Tickets" id="T0P-Bi-31w" customClass="TicketsView" sceneMemberID="viewController">
                    <view key="view" contentMode="scaleToFill" id="4zZ-I2-ltX">
                        <rect key="frame" x="0.0" y="64" width="320" height="504"/>
                        <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                        <subviews>
                            <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="You Made It" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Fbu-Sr-Mgf">
                                <fontDescription key="fontDescription" type="system" pointSize="17"/>
                                <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
                                <nil key="highlightedColor"/>
                            </label>
                        </subviews>
                        <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
                        <constraints>
                            <constraint firstItem="Fbu-Sr-Mgf" firstAttribute="top" secondItem="4zZ-I2-ltX" secondAttribute="top" constant="138" id="QBp-qM-fKP"/>
                            <constraint firstItem="Fbu-Sr-Mgf" firstAttribute="leading" secondItem="4zZ-I2-ltX" secondAttribute="leading" constant="115" id="goO-5h-RZK"/>
                        </constraints>
                    </view>
                    <navigationItem key="navigationItem" id="vu4-JX-C3v"/>
                    <simulatedNavigationBarMetrics key="simulatedTopBarMetrics" prompted="NO"/>
                    <connections>
                        <segue destination="TOB-FA-Ss4" kind="modal" identifier="ShowLogin" id="dJH-ge-8CV"/>
                    </connections>
                </viewController>
                <placeholder placeholderIdentifier="IBFirstResponder" id="aSa-2G-5fx" userLabel="First Responder" sceneMemberID="firstResponder"/>
            </objects>
            <point key="canvasLocation" x="-518" y="-841"/>
        </scene>
        <!--Login Screen - Login-->
        <scene sceneID="6iZ-QL-7ID">
            <objects>
                <viewController title="Login" id="TOB-FA-Ss4" customClass="LoginScreen" sceneMemberID="viewController">
                    <view key="view" contentMode="scaleToFill" id="w9e-4U-cwC">
                        <rect key="frame" x="0.0" y="64" width="320" height="504"/>
                        <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                        <subviews>
                            <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Blue Label Hosting Login" lineBreakMode="tailTruncation" minimumFontSize="10" translatesAutoresizingMaskIntoConstraints="NO" id="SuD-JI-L2T">
                                <fontDescription key="fontDescription" type="system" pointSize="17"/>
                                <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
                                <nil key="highlightedColor"/>
                            </label>
                            <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="Username" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="NeI-zB-U8Y">
                                <constraints>
                                    <constraint firstAttribute="height" constant="31" id="BlH-cG-Jdh"/>
                                    <constraint firstAttribute="width" constant="208" id="Osb-tj-fjn"/>
                                </constraints>
                                <fontDescription key="fontDescription" type="system" pointSize="14"/>
                                <textInputTraits key="textInputTraits"/>
                            </textField>
                            <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="Password" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="4Fi-NX-kli">
                                <constraints>
                                    <constraint firstAttribute="height" constant="31" id="X3j-X2-ton"/>
                                </constraints>
                                <fontDescription key="fontDescription" type="system" pointSize="14"/>
                                <textInputTraits key="textInputTraits" secureTextEntry="YES"/>
                            </textField>
                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="5o5-83-KbW">
                                <constraints>
                                    <constraint firstAttribute="height" constant="36" id="Afu-6h-uru"/>
                                    <constraint firstAttribute="width" constant="161" id="Ef5-df-Jmp"/>
                                </constraints>
                                <fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
                                <state key="normal" title="Login">
                                    <color key="titleColor" red="0.19607843459999999" green="0.30980393290000002" blue="0.52156865600000002" alpha="1" colorSpace="calibratedRGB"/>
                                    <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
                                </state>
                                <state key="highlighted">
                                    <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
                                </state>
                                <connections>
                                    <action selector="btnLoginRegisterTapped:" destination="w9e-4U-cwC" eventType="touchUpInside" id="Wgb-L8-sAJ"/>
                                </connections>
                            </button>
                        </subviews>
                        <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/>
                        <constraints>
                            <constraint firstItem="NeI-zB-U8Y" firstAttribute="top" secondItem="SuD-JI-L2T" secondAttribute="bottom" constant="8" symbolic="YES" type="default" id="0Pv-zM-WId"/>
                            <constraint firstItem="4Fi-NX-kli" firstAttribute="top" secondItem="NeI-zB-U8Y" secondAttribute="bottom" constant="8" symbolic="YES" type="default" id="2Sw-m8-LND"/>
                            <constraint firstItem="4Fi-NX-kli" firstAttribute="trailing" secondItem="NeI-zB-U8Y" secondAttribute="trailing" type="default" id="88O-VQ-qut"/>
                            <constraint firstItem="SuD-JI-L2T" firstAttribute="centerX" secondItem="NeI-zB-U8Y" secondAttribute="centerX" type="default" id="Qu9-PG-YWz"/>
                            <constraint firstItem="4Fi-NX-kli" firstAttribute="centerX" secondItem="5o5-83-KbW" secondAttribute="centerX" type="default" id="RAm-sI-Z3u"/>
                            <constraint firstItem="5o5-83-KbW" firstAttribute="top" secondItem="w9e-4U-cwC" secondAttribute="top" constant="128" id="UTG-NS-bx4"/>
                            <constraint firstItem="SuD-JI-L2T" firstAttribute="top" secondItem="w9e-4U-cwC" secondAttribute="top" constant="20" symbolic="YES" type="default" id="iaC-Ex-EBa"/>
                            <constraint firstItem="SuD-JI-L2T" firstAttribute="centerX" secondItem="w9e-4U-cwC" secondAttribute="centerX" type="default" id="oWP-Gp-Pi5"/>
                            <constraint firstItem="4Fi-NX-kli" firstAttribute="leading" secondItem="NeI-zB-U8Y" secondAttribute="leading" type="default" id="oxE-WD-fVc"/>
                        </constraints>
                        <connections>
                            <outlet property="fldPassword" destination="4Fi-NX-kli" id="4eb-YW-8YI"/>
                            <outlet property="fldUsername" destination="NeI-zB-U8Y" id="Ds4-XS-iqW"/>
                        </connections>
                    </view>
                    <simulatedNavigationBarMetrics key="simulatedTopBarMetrics" prompted="NO"/>
                </viewController>
                <placeholder placeholderIdentifier="IBFirstResponder" id="FL3-Yk-JbH" userLabel="First Responder" sceneMemberID="firstResponder"/>
            </objects>
            <point key="canvasLocation" x="-84" y="-349"/>
        </scene>
        <!--Navigation Controller-->
        <scene sceneID="fJ6-wq-4Tj">
            <objects>
                <navigationController id="A8c-eR-geg" sceneMemberID="viewController">
                    <toolbarItems/>
                    <navigationBar key="navigationBar" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" id="bnk-dD-E4j">
                        <rect key="frame" x="0.0" y="0.0" width="320" height="44"/>
                        <autoresizingMask key="autoresizingMask"/>
                    </navigationBar>
                    <nil name="viewControllers"/>
                    <connections>
                        <segue destination="T0P-Bi-31w" kind="relationship" relationship="rootViewController" id="3jA-WY-c3V"/>
                    </connections>
                </navigationController>
                <placeholder placeholderIdentifier="IBFirstResponder" id="lTO-TW-owb" userLabel="First Responder" sceneMemberID="firstResponder"/>
            </objects>
            <point key="canvasLocation" x="-971" y="-910"/>
        </scene>
    </scenes>
    <classes>
        <class className="LoginScreen" superclassName="UIViewController">
            <source key="sourceIdentifier" type="project" relativePath="./Classes/LoginScreen.h"/>
            <relationships>
                <relationship kind="action" name="btnLoginRegisterTapped:"/>
                <relationship kind="outlet" name="fldPassword" candidateClass="UITextField"/>
                <relationship kind="outlet" name="fldUsername" candidateClass="UITextField"/>
            </relationships>
        </class>
        <class className="NSLayoutConstraint" superclassName="NSObject">
            <source key="sourceIdentifier" type="project" relativePath="./Classes/NSLayoutConstraint.h"/>
        </class>
        <class className="TicketsView" superclassName="UIViewController">
            <source key="sourceIdentifier" type="project" relativePath="./Classes/TicketsView.h"/>
        </class>
    </classes>
    <simulatedMetricsContainer key="defaultSimulatedMetrics">
        <simulatedStatusBarMetrics key="statusBar"/>
        <simulatedOrientationMetrics key="orientation"/>
        <simulatedScreenMetrics key="destination" type="retina4"/>
    </simulatedMetricsContainer>
</document>
70
user1890328

De telles exceptions inexplicables sont souvent le résultat d'un fichier xib malpropre. Ouvrez le xib dans xcode, sélectionnez Propriétaire du fichier et cliquez sur "Inspecteur de connexion" (flèche en haut à droite) pour voir toutes les prises en même temps. Recherchez !s qui indique une prise manquante.

263
AlexWien

Vérifiez vos connexions dans Interface Builder. Vous faites probablement référence à un IBOutlet ou IBAction non existant.

37

Look "!"

Merci les gars. J'ai résolu ce problème grâce à votre aide. J'espère donc que cette capture d'écran sera utile aux personnes qui ont le même problème.

32
bureaucoconut

Allez à l'onglet points d'arrêt de Xcode. Utilisez le bouton en bas pour ajouter un point d'arrêt d'exception. Vous verrez maintenant quel code appelle setValue: forKey: et la pile associée. Avec de la chance, cela vous indiquera directement la source du problème.

Bizarre que votre classe s'appelle LoginScreen, pourtant l'erreur dit que quelqu'un utilise "LoginScreen" comme clé. Vérifiez que LoginScreen.m fait partie de votre cible.

enter image description here


Note de bas de page: avec Swift, un problème courant se pose si vous changez le nom d'une classe (vous la renommez donc partout dans votre code). Storyboard a du mal avec cela, et vous devez généralement re-glisser toutes les connexions impliquant cette classe. Et en particulier, entrez à nouveau le nom de la classe utilisée n'importe où dans IdentityInspector, à droite. (Dans l'exemple de l'image, j'ai délibérément mal orthographié le nom de la classe. Mais il se produit souvent la même chose lorsque vous renommez une classe; même si c'est apparemment correct dans IdentityInspector, vous devez saisir à nouveau le nom; autocomplete et vous êtes prêt à partir.)

24
Graham Perks

J'ai eu un problème similaire avec la création de TableCell personnalisé. Le problème était que je définissais FileOwner à ma classe personnalisée, puis que je connectais des prises.

FileOwner doit rester NSObject.

22
Milos Zikic

J'avais ceci et ai regardé tout et n'a vu aucun problème, mais finalement je me suis souvenu d'essayer Nettoyer et clair Données dérivées et cela l'a résolu!

7
Chad Parker

J'avais un problème similaire, mais j'utilisais initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil en utilisant explicitement le nom de la classe comme chaîne transmise (oui mauvaise forme!).

J'ai fini par supprimer et recréer le contrôleur de vue en utilisant un nom légèrement différent, mais en négligeant de changer la chaîne spécifiée dans la méthode, mon ancienne version était toujours utilisée, même si elle se trouvait dans la corbeille!

J'utiliserai probablement cette structure à l'avenir comme suggéré dans: Le passage de deux paramètres nil à initWithNibName: bundle: method est-il une mauvaise pratique (c'est-à-dire dangereux ou plus lent)?

- (id)init
{
    [super initWithNibName:@"MyNib" bundle:nil];
    ... typical initialization ...
    return self;
}

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    return [self init];
}

Espérons que cela aide quelqu'un!

2
RndmTsk

Cette erreur est autre chose!

Voici comment je l'ai corrigé. J'utilise xcode version 6.1.1 et j'utilise Swift. J'ai eu cette erreur chaque fois que mon application a essayé d'effectuer une transition pour passer à l'écran suivant. Voici ce que j'ai fait.

  1. Vérifié que le bouton était connecté à la bonne action (ce n'était pas le problème, mais ça reste bon à vérifier)
  2. Vérifiez que le bouton ne contient aucune action ou sortie supplémentaire créée par erreur. (Ce n'était pas le problème, mais bon à vérifier)
  3. Vérifiez les journaux et assurez-vous que tous les boutons de l'ECRAN SUIVANT ont les actions correctes. S'il y a des légendes, assurez-vous qu'elles ont un identifiant unique. (C'était le problème)
    • Une des ligues n'avait pas d'identifiant unique
    • Un des boutons avait une action et deux sorties que j'ai créées par erreur.

Supprimez tous les points de vente supplémentaires et assurez-vous que vous passez à l'écran suivant avec des identifiants uniques.

À votre santé,

2
Ronaldoh1

J'ai eu ce problème parce que je n'utilisais pas StoryBorad et que, dans les propriétés du projet -> Informations de déploiement -> Interface principale, le nom du fichier Xib principal était utilisé.

J'ai supprimé la valeur dans l'interface principale et résolu le problème.

1
Ronaldo Albertini

Si vous avez des fichiers Storybord différents et si vous avez des références de sortie avec la création de sorties dans vos fichiers d'en-tête, supprimez simplement les connexions en cliquant avec le bouton droit de la souris sur le propriétaire des fichiers.

Fichiers propriétaire-> clic droit-> supprimer la connexion non désirée là-bas.

Passez par ceci pour une explication claire. Qu'est-ce que cela signifie? "'NSUnknownKeyException', raison:… cette classe n'est pas compatible avec le codage de valeur de clé pour la clé X"

0

Car c'est parce que ça n'a pas 2 fonctions

@implementation CellTableView

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
    return [self init];
}
- (void)awakeFromNib {
}

- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
    [super setSelected:selected animated:animated];
}

@end
0
YannSteph

J'ai rencontré ce même problème aujourd'hui. Comme suggéré dans cette réponse , le problème était un xib impur. Dans mon cas, le xib malpropre était le résultat de la mise à jour d'un xib chargé par quelque chose d'autre que le contrôleur de vue auquel il était associé.

Xcode m'a laissé créer et peupler un nouveau point de vente et l'a connecté au propriétaire du fichier, même si je l'ai explicitement connecté à la source du contrôleur de vue approprié. Voici le code généré par Xcode:

    <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="LoginViewController"]]>
        <connections>
            <outlet property="hostLabel" destination="W4x-T2-Mcm" id="c3E-1U-sVf"/>
        </connections>
    </placeholder>

Lorsque j'ai exécuté mon application, celle-ci s'est écrasée avec la même erreur not key value coding-compliant. Pour corriger le problème, j'ai supprimé la prise du propriétaire du fichier dans Interface Builder et je l'ai connectée explicitement à l'objet du contrôleur de vue sur le contour de gauche plutôt qu'au code dans l'éditeur d'assistant.

0
lambmj

Une erreur similaire s’est produite lors de la création d’une classe de vue personnalisée, c’est qu’une des sorties s’est connectée deux fois dans le fichier XIB (je pense que j’ai initialement contrôlé le contrôle glissé directement dans le code, mais ce dernier contrôle a Propriétaire du fichier). J'ai ouvert le fichier XIB et en ai supprimé un, puis tout a bien fonctionné. Espérons que cela aide.

0
Ray

Dans mon cas, j'ai description d'IBOutlet UILabel * en .h, c'était en jaune /!\- "ne sera pas synthétisé" , comme je me souviens. Je ne sais pas ce que c'est et pourquoi seulement cette étiquette.

Mais j'ai eu ce crash et cette erreur comme ci-dessus. Supprimé * description et recréer * description2. Pas de crash dans le résultat.

0
djdance

En ce qui me concerne, j’ai passé un appel pour l’en-tête de ma vue de collection où j’étais en train d’enregistrer le nib pour enregistrer la classe. Cela l'a corrigé.

0
cynistersix

Je l'ai eu sur un PickerView de tous les lieux. Le message d'erreur nommait le problème avec "queuePicker" au premier du message. Cela était dû à une précédente prise de référencement qui n'était plus valide après avoir ajouté un composant et renommé le NSArray d'origine en un nom autre que queuePicker. CNTL + clic sur votre objet StoryBoard vous donne les connexions. J'ai cliqué sur le "x" en regard du ViewController pour queuePicker dans les prises de référencement, établi une nouvelle connexion et alto, plus de crash.

0
Russell Crow

Vous définissez probablement une valeur pour une clé dans alertView, ce qui n'est pas autorisé. La clé est dans ce cas LoginScreen. Je ne vois aucun appel à setValue(), alors je suppose que c'est ailleurs dans le code.

0
Matt

Cela signifie généralement que quelque chose tente d'accéder à la @ propriété "GivenName".

Si vous faites quelque chose avec Interface Builder(IB), la cause habituelle est que vous pouvez soit:

  1. supprimé cette propriété de la classe, mais n'a pas encore supprimé les connexions dans IB
  2. OU: vous avez un objet Propriétaire de fichier défini sur la mauvaise classe (vérifiez les propriétés - différentes selon la version de xcode que vous utilisez
    • pour trouver le nom de classe défini comme. Vous avez probablement copié/collé un fichier NIB et n'avez pas modifié ce champ dans la NIB), et vous avez branché un point de vente pour cette classe, mais le propriétaire de votre fichier est différent.
0
Xar E Ahmer

Cela m'est arrivé dans le scénario suivant:

J'ai créé un deuxième projet dans mon espace de travail, j'ai choisi "Application à vue unique" pour le modèle.

Je suis ensuite allé à Interface Builder (storyboard de l’iPhone principal), j’ai ajouté un UISwitch à la vue principale, puis je l’ai connecté au contrôleur de vue via un IBOutlet et un IBAction (-valueChanged:).

Au lancement, l'application se bloque avec l'exception mentionnée dans la question. Si je supprime le commutateur de la vue, cela fonctionne.

Après une inspection minutieuse, je me suis rendu compte que j'avais fait glisser les connexions dans le ViewController.h d'un autre projet du même espace de travail. L'ensemble "automatique" de l'éditeur adjoint d'Interface Builder (a.k.a icône du coffre tuxedo) a choisi comme "contrepartie" le mauvais fichier (avec le nom correct).

J'espère que cela aidera quelqu'un, en particulier parce que les modèles de projet 'Single View Application' et 'SpriteKit Game' (dans mon cas) créent une classe de contrôleur de vue par défaut appelée "ViewController".

0
Nicolas Miari