[IOSS]Swift与OC混编
来源:互联网 发布:产品手册设计软件 编辑:程序博客网 时间:2024/06/08 03:11
[IOSS]Swift与OC混编
Demo:http://download.csdn.net/detail/u012881779/9237839
1.用Swift或Object-c创建一个工程(DMTestDemo)并拖入一个第三方工具(ASIHTTPRequest)
适配过后工程结构大概下面这样:
2.基于NSObject创建一个桥接文件(DMTest-Bridging-Header.h)
命名规则:工程名-Bridging-Header.h(也可以按照自己意愿命名)
3.在Build Settings中找到 Bridging Header并双击添加内容:$(SRCROOT)/工程名/工程名-Bridging-Header.h
例如:$(SRCROOT)/DMTestDemo/DMTest-Bridging-Header.h
4.在Swift中调用OC需要在桥接文件(DMTest_Bridging_Header.h)中添加需要在.swift中调用的.h文件
若只需要在OC中调用Swift,则在桥接文件不需要做任何处理
#import <Foundation/Foundation.h>#import "ASIhttpRequest.h"@interface DMTest_Bridging_Header : NSObject@end5.完成上面的操作,就可以进行Swift与OC混编了
在Swift中调用OC:
import UIKitclass ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() //接口 let portStr = "https://www.baidu.com" //链接中包含中文时 //portStr = portStr.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding)! let url = NSURL(string:portStr) let request = ASIHTTPRequest(URL: url) request.delegate = self request.startAsynchronous() } //请求成功 func requestFinished(request : ASIHTTPRequest){ let data = request.responseData //把NSData对象转换回JSON对象 let json : AnyObject! = try? NSJSONSerialization .JSONObjectWithData(data(), options:NSJSONReadingOptions.AllowFragments) print("request finished"); } //请求失败 func requestFailed(request : ASIHTTPRequest){ print("request failed") }}
在OC中调用Swift:
系统默认给我们生成了头文件(需要Swift类是NSObject的直接或者间接子类)
调用规则: 工程名-Swift.h (从步骤3的图可以看见 Objective-C Generated Interface Header Name)
#import "ASIHTTPRequest.h"#import "DMTestDemo-swift.h"@implementation ASIAutorotatingViewController- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation{ ViewController *tempVC = [[ViewController alloc] init]; [tempVC requestFinished:nil]; [tempVC requestFailed:nil]; return YES;}@end
0 0
- [IOSS]Swift与OC混编
- Swift与OC混编
- OC与Swift混编
- OC与Swift混编
- OC与Swift混编
- OC与Swift混编
- OC与Swift混编
- OC与Swift混编
- oc与swift混编
- Swift与OC 混编
- Swift与OC混编
- OC与Swift混编
- OC与Swift混编
- swift 与oc 混编
- Swift与OC混编
- OC与swift混编
- oc与swift混编
- OC与Swift混编
- 【jQuery】遮罩效果的实现
- MBProgressHUD特效
- 使用cocos2d-x显示瓦片地图,发现两个瓦片衔接的地方有黑线
- Easyui的一些简单用法
- android教程学习第十讲:启动脚本init.rc的学习
- [IOSS]Swift与OC混编
- SetEvent与PulseEvent的区别
- Android中SlidingMenu框架的使用
- android中进行https连接的方式
- 在win7 64位系统下用vs建立ocx出错
- EAS BOS手动写的保存方法
- 底部布局被输入框顶上去解决
- HTTP 的get方法
- HDOJ 2529 Shot(物理+数学)