加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Swift基础--调用第三方OC项目

发布时间:2020-12-14 06:45:15 所属栏目:百科 来源:网络整理
导读:第一步:创建和配置Bridging-Header.h Swift与OC进行混编,首先要有一个.h文件,这里使用Bridging-Header.h然后设置项目的Build Settings--Swift Compiler--Objective-C Bridging Header内容为DemoApp/Bridging-Header.h,这个与Bridging-Header.h位置有

第一步:创建和配置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,但是过程曲折,最后一直报

[objc] view plain copy
  1. <spanstyle="font-size:14px;">ld:218duplicatesymbolsforarchitecturei386
  2. clang:error:linkercommandfailedwithexitcode1(use-vtoseeinvocation)</span>
我也没有办法了就把第三方项目源码拷贝到自己的项目里面,上图也可以看到我拷贝的事AFNetworking项目,然后在把源码加入到Build Phases--Compile Sources里面

第三步:修改Bridging-Header.h

在Bridging-Header.h中写入#import"AFNetworking.h"

第四步:调用OC

前面的工作做完后我们就可以调用第三方项目的功能了

copy
//
  • //ViewController.swift
  • //DemoApp
  • //
  • //Createdbyjiezhangon14/10/24.
  • //Copyright(c)2014年jiezhang.Allrightsreserved.
  • importUIKit
  • classViewController:UIViewController{
  • @IBOutletweakvarweatherInfo:UITextView!
  • overridefuncviewDidLoad(){
  • super.viewDidLoad()
  • updateWeatherInfo()
  • }
  • overridefuncdidReceiveMemoryWarning(){
  • super.didReceiveMemoryWarning()
  • //DispoSEOfanyresourcesthatcanberecreated.
  • }
  • funcupdateWeatherInfo(){
  • letmanager=AFHTTPRequestOperationManager()
  • leturl="http://api.openweathermap.org/data/2.5/weather"
  • println(url)
  • letparams:NSDictionary=["lat":"37.785834","lon":"-122.406417","cnt":0]
  • println(params)
  • manager.GET(url,
  • parameters:params,
  • success:{(operation:AFHTTPRequestOperation!,0); background-color:inherit">responSEObject:AnyObject!)in
  • self.weatherInfo.text="JSON:"+responSEObject.description!
  • },
  • failure:{(operation:AFHTTPRequestOperation!,0); background-color:inherit">error:NSError!)in
  • self.weatherInfo.text="Error:"+error.localizedDescription
  • })
  • <p>}</p>
  • 第五步:运行界面

    (编辑:李大同)

    【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

      推荐文章
        热点阅读