第一步:创建和配置Bridging-Header.h
Swift与OC进行混编,首先要有一个.h文件,这里使用Bridging-Header.h然后设置项目的Build Settings--Swift Compiler--Objective-C Bridging Header内容为DemoApp/Bridging-Header.h,这个与Bridging-Header.h位置有关,从项目的根目录开始在Objective-C Bridging Header选项里面写入Bridging-Header.h相对路径。
第二步:第三方项目依赖
对于第三方项目的依赖,一开始我打算用CocoaPods,但是过程曲折,最后一直报
我也没有办法了就把第三方项目源码拷贝到自己的项目里面,上图也可以看到我拷贝的事AFNetworking项目,然后在把源码加入到Build Phases--Compile Sources里面
第三步:修改Bridging-Header.h
在Bridging-Header.h中写入#import"AFNetworking.h"
第四步:调用OC
copy
//@H_301_72@
//ViewController.swift@H_301_72@
//DemoApp @H_301_72@
//@H_301_72@
//Createdbyjiezhangon14/10/24.@H_301_72@
//Copyright(c)2014年jiezhang.Allrightsreserved.@H_301_72@
@H_301_72@
importUIKit@H_301_72@
classViewController:UIViewController{@H_301_72@
@IBOutletweakvarweatherInfo:UITextView!@H_301_72@
overridefuncviewDidLoad(){@H_301_72@
super.viewDidLoad()@H_301_72@
updateWeatherInfo()@H_301_72@
}@H_301_72@
overridefuncdidReceiveMemoryWarning(){@H_301_72@
super.didReceiveMemoryWarning()@H_301_72@
//DispoSEOfanyresourcesthatcanberecreated.@H_301_72@
}@H_301_72@
@H_301_72@
funcupdateWeatherInfo(){@H_301_72@
letmanager=AFHTTPRequestOperationManager()@H_301_72@
leturl="http://api.openweathermap.org/data/2.5/weather"@H_301_72@
println(url)@H_301_72@
letparams:NSDictionary=["lat":"37.785834","lon":"-122.406417","cnt":0]@H_301_72@
println(params)@H_301_72@
manager.GET(url,@H_301_72@
parameters:params,@H_301_72@
success:{(operation:AFHTTPRequestOperation!,0); background-color:inherit">responSEObject:AnyObject!)in@H_301_72@
self.weatherInfo.text="JSON:"+responSEObject.description!@H_301_72@
},@H_301_72@
failure:{(operation:AFHTTPRequestOperation!,0); background-color:inherit">error:NSError!)in@H_301_72@
self.weatherInfo.text="Error:"+error.localizedDescription@H_301_72@
})@H_301_72@
<p>}</p>@H_301_72@