假如你现在有一个 swift 类 LoginViewContrller.swift, 但是工程是objc的工程:AppDelegate.h/.m
现在设置AppDelegate的rootviewcontroller为 LoginViewContrller
1. 在target -> build setting -> Product Module Name , 可以写成你的项目名
2. 在 AppDelegate.m 中添加
#import "xmppClient-Swift.h" ,其中 xmppClient 就是我们刚才写的Product Module Name。 如果没有自动联想出来,可以直接手写上去, 我就是手写上去的,编译不会报错。
3. 接下来,你就可以在 didFinishLaunchingWithOptions 中使用你的 Swift 文件了
这是我的代码:
self.window.rootViewController = [[UINavigationController alloc] initWithRootViewController:loginViewController];
4. 编译,运行。
那如果我是Swift的工程, 要如何设置 rootviewcontroller 为 objc 文件呢?
我新建一个Swift工程 : LALALA
新建cocoa touch class -> language选objc
当最后create 的时候,xcode 会提示如下:
选 YES
发现工程里会另外多了一个 "productName"-Bridging-Header.h 的文件。
只需要把你想在Swift中用的objc文件 import 进来。
例:
然后在 AppDelegate.Swift 中 写
self.window!.rootViewController = RootViewController()
运行,可以了。
参考: http://stackoverflow.com/questions/24002369/how-to-call-objective-c-code-from-swift