我已阅读此问题:How to call Objective-C code from Swift 1。但我能找到我需要的东西。 我在我的项目中使用swift像第一语言,后来我添加了Objective C.但我的问题是在Objective c文件中如何在swift中调用函数,现在我只能做相反的事情(在swift和使用中工作)客观c类)。 当我关注代码时:
#import "ViewController-Swift.h"
xcode问题是:file not found.
现在这是我的问题:
@objc class ShareViewController: UIViewController {
var name: String
init(name: String) {
self.name = name
}
// Needed to add a class level initializer
class func newInstanceNamed(name: String) -> ShareViewController {
return ShareViewController(name: name)
}
func abilitaTimer(){
println("ciao")
}
}
}
xcode问题是:required initializer init coder...
答案 0 :(得分:2)
除非您正在构建的项目名为ViewController
,否则您的文件名错误。查看为您创建的桥接头文件。如果它被称为xyzzy-Bridging-Header.h
,那么您要在Objective-C中导入的文件为xyzzy-Swift.h
。
答案 1 :(得分:0)
在基于Objc的项目中快速迁移:
*.swift
文件(在Xcode中)或使用Finder swift bridging empty header
(见下文4)使用@objc
属性实现您的Swift类:
import UIKit
@objc class Hello {
func sayHello () {
println("Hi there!")
}
}
打开构建设置并检查以下参数:
产品模块名称:myproject
定义模块:是
嵌入式内容包含Swift :是
安装Objective-C兼容性标题:是
Objective-C桥接标题:$(SRCROOT)/Sources/SwiftBridging.h
* .m文件中的导入标题(由Xcode自动生成)。例如,假设您的项目名称为myproject
,那么该文件将为myproject-Swift.h
。
#import "myproject-Swift.h"
清理并重建您的Xcode项目