La méthode Objective-C est en conflit avec la méthode d'exigence optionnelle Swift

Après la mise à jour de Xcode, le compilateur a commencé à lancer une erreur sur le code de travail (les deux fonctions se trouvent dans AppDelegate.swift).

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: NSDictionary?) -> Bool { FBLoginView.self FBProfilePictureView.self return true } 

Avec erreur:

/Users/../AppDelegate.swift:14:11: application de la méthode Objective-C: didFinishLaunchingWithOptions: application fournie par la méthode ( : didFinishLaunchingWithOptions 🙂 est en conflit avec l'application facultative method de l'application ( : didFinishLaunchingWithOptions 🙂 dans le protocole 'UIApplicationDelegate'

Et deuxieme

 func application(application: UIApplication, openURL url: NSURL, sourceApplication: NSSsortingng?, annotation: AnyObject) -> Bool { var wasHandled:Bool = FBAppCall.handleOpenURL(url, sourceApplication: sourceApplication as! Ssortingng) return wasHandled } 

avec erreur

/Users/../AppDelegate.swift:25:11: application de la méthode Objective-C: openURL: sourceApplication: annotation: application fournie par la méthode ( : openURL: sourceApplication: annotation 🙂 'conflit avec l'option facultative method' application ( : openURL: sourceApplication: annotation 🙂 'dans le protocole' UIApplicationDelegate '

Je comprends que très probablement je voudrais que vous restiez set ces deux fonctions en une seule fois. Je ne comprends pas pourquoi ce code a soudainement cessé de fonctionner en 6.3, malgré le fait qu'il a fonctionné en 6.2.

Je ne sais pas exactement pourquoi le compilateur lance l'erreur, mais je vois une différence dans la version par défaut de ces mêmes methods. Peut-être pourriez-vous replace la déclaration de la fonction par celle créée avec un projet Swift normal:

1

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool

2

func application(application: UIApplication, openURL url: NSURL, sourceApplication: Ssortingng?, annotation: AnyObject) -> Bool

Je vous recommand de replace vos déclarations de méthode par les précédentes pour voir si elles se comstacknt maintenant.


EDIT 1 (21/09/2015): J'ai confirmé qu'ils sont maintenant à jour pour la sortie publique de Xcode 7. Ils ont supprimé l'option ( annotation: AnyObject? ) Et l'ont annotation: AnyObject ( annotation: AnyObject ), dans la déclaration # 2.

Le type du paramètre launchOptions de la fonction didFinishLaunchingWithOptions a été modifié dans XCode 6.3:

"launchOptions: NSDictionary?" est devenu "launchOptions: [NSObject: AnyObject]?"

Changez simplement l'en-tête de votre fonction pour faire correspondre les éléments suivants:

 func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool 

Vous devez également vous assurer que vous utilisez le bon type. Utilisez Ssortingng au lieu de NSSsortingng .

Essayez de redéfinir cette méthode à partir des complétions de Xcode. A travaillé pour moi.

launchOptions a été modifié; essayez de changer "launchOptions: NSDictionary?" à "launchOptions: [NSObject: AnyObject]?"

J'espère que cela t'aides!