2016-02-17 17:24:54 maindek 阅读数 1060

第一步:创建和配置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
 print?在CODE上查看代码片派生到我的代码片
  1. <span style="font-size:14px;">ld: 218 duplicate symbols for architecture i386  
  2. clang: error: linker command failed with exit code 1 (use -v to see invocation)</span>  
我也没有办法了就把第三方项目源码拷贝到自己的项目里面,上图也可以看到我拷贝的事AFNetworking项目,然后在把源码加入到Build Phases--Compile Sources里面

第三步:修改Bridging-Header.h

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

第四步:调用OC

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

[objc] view plain copy
 print?在CODE上查看代码片派生到我的代码片
  1. //  
  2. //  ViewController.swift  
  3. //  DemoApp  
  4. //  
  5. //  Created by jiezhang on 14/10/24.  
  6. //  Copyright (c) 2014年 jiezhang. All rights reserved.  
  7. //  
  8.   
  9. import UIKit  
  10.   
  11. class ViewController: UIViewController {  
  12.   
  13.     @IBOutlet weak var weatherInfo: UITextView!  
  14.     override func viewDidLoad() {  
  15.         super.viewDidLoad()  
  16.         updateWeatherInfo()  
  17.     }  
  18.   
  19.     override func didReceiveMemoryWarning() {  
  20.         super.didReceiveMemoryWarning()  
  21.         // Dispose of any resources that can be recreated.  
  22.     }  
  23.   
  24.       
  25.     func updateWeatherInfo() {  
  26.         let manager = AFHTTPRequestOperationManager()  
  27.         let url = "http://api.openweathermap.org/data/2.5/weather"  
  28.         println(url)  
  29.         let params:NSDictionary = ["lat":"37.785834""lon":"-122.406417""cnt":0]  
  30.         println(params)  
  31.         manager.GET(url,  
  32.             parameters: params,  
  33.             success: { (operation: AFHTTPRequestOperation!,  
  34.                 responseObject: AnyObject!) in  
  35.                 self.weatherInfo.text = "JSON: " + responseObject.description!  
  36.             },  
  37.             failure: { (operation: AFHTTPRequestOperation!,  
  38.                 error: NSError!) in  
  39.                 self.weatherInfo.text = "Error: " + error.localizedDescription  
  40.                  
  41.         })  
  42.     }  
  43.   
  44. <p>}</p>  

第五步:运行界面


2016-01-12 20:13:49 zww1984774346 阅读数 9103

为防止出问题,建议以这样的方法做:
1.建一个OC工程命名为SwiftOC
这里写图片描述
2.新建一个swfit文件命名为Test.swift,会弹出提示,选择Create Bridging Header建立桥接文件,系统会建立“工程名-Bridging-Header.h”
这里写图片描述

这里写图片描述
3.配置工程
设置Defines Module 为Yes
这里写图片描述
设置Product Module Name 为当前工程名
这里写图片描述

此时系统会为工程创建一个“上面所填Product Module Name-Swift.h”的文件,此文件不可手动创建,必须使用系统创建的

4.创建一个Test2.swift
这里写图片描述

import Foundation
public class HH:NSObject
{

    public func show()
    {
     print("hello")
    }
}

5.在OC文件中引用swift


#import "ViewController.h"
//导入时需要手动打上,系统没有提示
#import "SwiftOC-Swift.h"
@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    HH *VC=[[HH alloc]init];
    [VC show];
}
- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end
2016-03-05 12:20:12 Baby_come_here 阅读数 293

1.  新建一个点.h 文件, 用于桥接 swift 和 oc


2. 将 用到第三方的类的头文件 导入

 如    #import "SVProgressHUD.h"


3 , 在targets --> build seting -->  搜索bridging


4.  双击  在弹出框中 输入   项目名/ 刚才新建的.h文件名.h

2017-06-07 16:44:42 qwe987tccg 阅读数 778

因为这个库是Swift写成的,要使用它,要使项目混编swift。

1.pod 导入:

         在podfile 里面输入下面的 关键字后,pod install 导入
    pod 'SwiftTheme'
   use_frameworks!
         

2.修改Xcode配置:

  1. 工程的Build Setting中把Defines Module改为YES
  2. targets->build settings ->packaging->Product Module Name,确保有值,没的话,写上 $(PRODUCT_NAME) 就行

3.创建桥接文件:

    偷懒一点的做法是直接创建一个swift文件
    它会提示你是否自动创建创建桥接文件:

    选择最后一个按钮,Xcode会创建下面的选中的文件:

    最后在使用第三方库的地方 导入 它的格式

  #import "SwiftTheme/SwiftTheme-Swift.h"

  它的格式是:  库的名字/库的名字-Swift.h

  假如是其他库的话,不确定是不是这个格式,也可能是:库的名字-Swift.h  这样的


PS:我的项目里面pod了AFNetworking ,但是混编Swift后,AFN导入头文件一直报错。解决方法是 :不使用pod ,直接往项目里面拖。假如有更好的解决方案,欢迎指教!


2016-08-12 10:26:55 lifeng__ 阅读数 252

一、swift第三方

1、直接将Alamofire.xcodeprok拖入项目中


2、添加依赖框架


3、文件调用需导入第三方库模块头文件


二、oc第三方

1、导入第三方文件


2、桥接文件添加第三方.h文件


Swift 调用MJRefresh刷新库

博文 来自: weixin_35755389
没有更多推荐了,返回首页