首页 > 代码库 > Swift基础--调用第三方OC项目
Swift基础--调用第三方OC项目
第一步:创建和配置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,但是过程曲折,最后一直报
ld: 218 duplicate symbols for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
我也没有办法了就把第三方项目源码拷贝到自己的项目里面,上图也可以看到我拷贝的事AFNetworking项目,然后在把源码加入到Build Phases--Compile Sources里面第三步:修改Bridging-Header.h
在Bridging-Header.h中写入#import "AFNetworking.h"
第四步:调用OC
前面的工作做完后我们就可以调用第三方项目的功能了
// // ViewController.swift // DemoApp // // Created by jiezhang on 14/10/24. // Copyright (c) 2014年 jiezhang. All rights reserved. // import UIKit class ViewController: UIViewController { @IBOutlet weak var weatherInfo: UITextView! override func viewDidLoad() { super.viewDidLoad() updateWeatherInfo() } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } func updateWeatherInfo() { let manager = AFHTTPRequestOperationManager() let url = "http://api.openweathermap.org/data/2.5/weather" println(url) let params:NSDictionary = ["lat":"37.785834", "lon":"-122.406417", "cnt":0] println(params) manager.GET(url, parameters: params, success: { (operation: AFHTTPRequestOperation!, responseObject: AnyObject!) in self.weatherInfo.text = "JSON: " + responseObject.description! }, failure: { (operation: AFHTTPRequestOperation!, error: NSError!) in self.weatherInfo.text = "Error: " + error.localizedDescription }) }}
第五步:运行界面
下载地址:http://pan.baidu.com/s/1c0myIbA
Swift基础--调用第三方OC项目
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。