override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
var swiftView = SwiftView(frame:CGRect(x:20, y:20, width:100, height:100))
self.view.addSubview(swiftView)
var myocView = MyOCView(frame:CGRectMake(50,140,200,200))
self.view.addSubview(myocView)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
这个时候会出错,原因是找不到MyOCView,因为我们在创建MyMixed工程的时候选择的swift,所以只有.swift文件才能在外部被看见
我们点击MyMixed工程的MyMixed.h文件可以看见
// In this header, you should import all the public headers of your framework using statements like #import
不难明白如果要这个framework的其他文件被外部工程看见,我们需要#import 这个头文件,但是这个一定是PublicHeader.h所以我们点击MyMixed工程的build phases里的Headers,可以看见public里只有MyMixed.h,我们要想在外部使用MyOCView.h就要把它从project里拖到public里,然后重新编译,错误消除编译通过
附上一张效果图
swift与OC混编高级教程之混编框架的创建和调用