2017-05-31 19 views
1

ObjCから空のプロジェクトをSwiftに移植しました(この問題のために、これはオプションではないと仮定しています)プロジェクトをObjCからSwiftに移植した後にアプリケーションが起動しない

私はmainファイルを含むにObjCクラスを、除去し、シンプルAppDelegate.swiftViewController.swiftすることによって、それらを置き換えました:

AppDelegate.swift:

import UIKit 

@UIApplicationMain 
class AppDelegate: UIResponder, UIApplicationDelegate { 

    func application(
     _ application: UIApplication, 
     didFinishLaunchingWithOptions 
     launchOptions: [UIApplicationLaunchOptionsKey : Any]? = nil) -> Bool { 
     return true 
    } 
} 

ViewController.swift:

import UIKit 

class ViewController: UIViewController { 
    override func viewDidLoad() { 
    super.viewDidLoad() 
    print("ViewController") 
    } 
} 

私の最初のストーリーボードは、ViewControllerタイプのUIViewControllerを使用していることを確認しました。

コンパイルは正常ですが、アプリケーションが起動していないため、AppDelegate didFinishLaunchingWithOptions関数が呼び出されず、ビューが表示されません。私は何とか新しいエントリポイントがAppDelegate.swiftであることをXcodeに伝える必要があると思う。@UIApplicationMainがやっていたと思う。

私は対話型のCで書かれている必要があるポッドを設定していますが、私はデモアプリケーションをすばやくしたいです。私はcocoapodsを介して自動的にそうするオプションを見つけることができなかったので、私は目的Cにすべてを設定し、私はデモアプリケーションを迅速に移動しようとしています。私は手動でビルド設定を変更しませんでした。私はビルドを清掃し、アプリデリゲートにウィンドウ属性を追加することで問題を解決することになった

+0

を働いたあなたは、ビルドの変更を行いました設定? –

+0

nop、ファイルの追加/削除によって自動生成されるものを除きます。 – Guig

+0

あなたのコードを実行するには、Swift Compilerが必要です。ビルドの設定を確認してください –

答えて

0

... AppDelegateがvar window: UIWindow?性質を持っている必要があります

。これはObjective Cのバージョンに存在し、私は愚かにそれを迅速なバージョンに入れるのを忘れてしまった。何らかの形でビルドフォルダをクリーニングした後、Xcodeはそのようなプロパティが存在しないと不満を持ち始めました。

このwindowプロパティは、起動時に設定する必要があります。ストーリーボード。この中の一部はsinplyた罰金働いていたのObjective Cのバージョンではありませんでした:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    // Override point for customization after application launch. 
    return YES; 
} 

は、だから私は今持っている:

// AppDelegate.swift 
import UIKit 

@UIApplicationMain 
class AppDelegate: UIResponder, UIApplicationDelegate { 
    var window: UIWindow? 

    func application(
    _ application: UIApplication, 
    didFinishLaunchingWithOptions 
    launchOptions: [UIApplicationLaunchOptionsKey : Any]? = nil) -> Bool { 

    window = UIWindow(frame: UIScreen.main.bounds) 
    window?.rootViewController = UIStoryboard.init(name: "Main", bundle: nil).instantiateInitialViewController() 
    window?.makeKeyAndVisible() 

    return true 
    } 
} 

、それは

関連する問題