Xcodeの更新後、コンパイラーは作業コードでエラーをスローし始めました(両方の関数がAppDelegate.Swiftにあります)。
func application(application: UIApplication,
didFinishLaunchingWithOptions launchOptions: NSDictionary?) -> Bool
{
FBLoginView.self
FBProfilePictureView.self
return true
}
エラーあり:
/Users/../AppDelegate.Swift:14:11:Objective-Cのメソッド 'application:didFinishLaunchingWithOptions:'は、メソッド 'application(:didFinishLaunchingWithOptions :)'がオプションの要件メソッド 'application(と競合しています:didFinishLaunchingWithOptions :) 'プロトコル' UIApplicationDelegate '
そして二番目
func application(application: UIApplication,
openURL url: NSURL,
sourceApplication: NSString?,
annotation: AnyObject) -> Bool {
var wasHandled:Bool = FBAppCall.handleOpenURL(url, sourceApplication: sourceApplication as! String)
return wasHandled
}
エラーあり
/Users/../AppDelegate.Swift:25:11:メソッド 'application(:openURL:sourceApplication:annotation :)'によって提供されるObjective-Cメソッド 'application:openURL:sourceApplication:annotation:'はオプションと競合しますプロトコル「UIApplicationDelegate」の要件メソッド「application(:openURL:sourceApplication:annotation :)」
この2つの機能を何らかの形で1つにまとめるようにしてください。 6.2で機能したにもかかわらず、6.3でこのコードが突然機能しなくなった理由はわかりません。
コンパイラがエラーをスローしている理由は正確にはわかりませんが、デフォルトのSwift=同じメソッドのバージョンに違いがあります。関数宣言を、通常のSwiftプロジェクト:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool
func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject) -> Bool
メソッドの宣言を上記のものに置き換えて、コンパイルできるかどうかを確認することをお勧めします。
編集1(9/21/2015):これらがXcode 7のパブリックリリースの最新版であることを確認しました。オプション(annotation: AnyObject?
)そしてそれを作りました(annotation: AnyObject
)、宣言#2で
launchOptionsdidFinishLaunchingWithOptions関数のパラメーターのタイプは、XCode 6.3で変更されました。
「launchOptions:NSDictionary?」 「launchOptions:[NSObject:AnyObject]?」になりました
関数ヘッダーを次のように変更するだけです:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool
また、正しいタイプを使用していることを確認する必要があります。 NSStringの代わりにStringを使用します。
Xcode補完からそのメソッドを再度オーバーライドしてください。私のために働いた。
launchOptionsが変更されました。 「launchOptions:NSDictionary?」を変更してみてください「launchOptions:[NSObject:AnyObject]?」
お役に立てれば!