はじめに
ゆう@あんのうんです。
提供中のKeyHolderですが、 これ半分くらいまだObjective-Cのコードで動いています。
流石に今後の保守の事を考えると、All Swift化した方が良いと思ってがちゃがちゃ開発しているにあたり、ちょっとつまずいた所のメモ書き
AppDelegateの書き換え
AppDelegateを単純にSwift化するだけなら問題ないのですが、 こちらの対応を行うと同時に、Objective-CでProjectを作るとデフォルトで入ってくるmain.mにて、
int main(int argc, char * argv[]) { @autoreleasepool { return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); } }
こんな感じでAppDelegateを呼び出しているのですが、Swift化から、AppDelegateにて
@UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { /*省略*/ }
こうしているため、実はmain.mは不要となります。
(逆に残しているとLinker errorとなります) なので、こいつを削除してあげると正常動作します。