对于一个初学swift的人来讲,除了要掌握swift的基本语法,最头疼的事儿还得去了解objective-c 的语法,因此现在还没有很成熟的swift库,第三方的东西(比如微信,QQ,微博)都是基于oc写的,所以写swift的时候就要考虑到调用oc的一下代码,oc暂时还不会退出历史舞台。因此苹果也推出了解决方法的。
我们在swift工程下,随便建立一个oc文件,就会提示你是否创建一个oc birdging header ? 这个就是连接swift和oc的桥梁。一般形式是xxxx(你的项目名)-Bridging-Header.h
接下来的重点就是如何调用OC的代码。我在code4app上下了一个第三方的oc库。库地址
这是oc的使用方法
复制WKAlertView.h/m文件到项目中即可使用。
示例:
@interface VC ()
{
UIWindow *__sheetwindow ;//window必须为全局变量或成员变量
}
//为成员变量Window赋值则立即显示Window
__sheetwindow = [WKAlertView showAlertViewWithStyle:sender.tag - 59 title:title detail:detail canleButtonTitle:cancle okButtonTitle:ok callBlock:^(MyWindowClick buttonIndex) {
//Window隐藏,并置为nil,释放内存 不能少
__sheetwindow.hidden = YES;
__sheetwindow = nil;
}];
介绍说明:
WKAlertView与以往alertView不同,是基于UIWindow实现的自定义带动画效果的AlertView。可以自定义标题和描述,通过UIWindow来实现。
如何在swift中调用呢?
1、在xxxx(你的项目名)-Bridging-Header.h添加所有的头文件,加入之后我们才可能调用,并且xcode还会代码自动提示。
#include "WKAlertView.h"
2、swift调用
var window:UIWindow?
class ViewController: UIViewController{
@IBAction func onTapped(sender: AnyObject) {
window = WKAlertView.showAlertViewWithTitle("I'm eddie",detail: "I only do this for test my programming",canleButtonTitle: "取消",okButtonTitle: "确定",callBlock:{(buttonIndex:MyWindowClick) ->Void in
window?.hidden = true
window = nil
})
后面代码省略。。。
我们对比oc和swift代码。oc的call block相当于swift的闭包,如果对闭包不清楚的可以去我的另一篇博客swift–闭包 其他的都比较简单。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。