• OC项目引入使用swift编写的三方后,报错 错误描述:The “Swift Language Version” (SWIFT_VERSION) build setting must be set to a supported value for targets which use Swift. This setting can be set ...

    OC项目引入使用swift编写的三方库后,报错

    • 错误描述:The “Swift Language Version” (SWIFT_VERSION) build setting must be set to a supported value for targets which use Swift. This setting can be set in the build settings editor.
    • 解决办法
      1. 选中Pods项目
      2. TARGETS选择对应的使用swift编写的三方库
      3. 切换到Build Setting选项
      4. 在搜索框输入swift language搜索
      5. 将Swift Language Version中的Unspecified改为对应的Swift版本(Swift 3.2)
      6. 重新build项目,这是可能会报一些Swift的语法错误,修改一下就OK了。
        Alt text
    展开全文
  • 之前在开发是遇到了在OC文件中调用Swift对象的变量调用不到的问题,这里总结一下: 1.首先我们一个Swift项目TestProject。 2.建立一个Swift的文件继承自NSObject名字为SwiftFile.swift,并声明一个字符串变量...

    之前在开发是遇到了在OC文件中调用Swift对象的变量调用不到的问题,这里总结一下:

    1.首先我们一个Swift项目TestProject。

    2.建立一个Swift的文件继承自NSObject名字为SwiftFile.swift,并声明一个字符串变量swiftName。

    import UIKit
    
    class SwiftFile: NSObject {
    
        var swiftName = ""
    }

    3.建立一个OC的文件ObjectFile,并导入“HFSTeacher-Swift.h”(OC想要调用Swift需要导入此文件)如何配置以及导入原因可以自行查询。

    #import "ObjectFile.h"
    #import "HFSTeacher-Swift.h"
    
    @implementation ObjectFile
    
    -(void)oneMethod
    {
        SwiftFile *swiftFile = [[SwiftFile alloc]init];
        NSLog(@"%@",swiftFile.swiftName);
    }
    
    @end

    这个时候会报错,说在SwiftFile中找不到swiftName成员。

    4.这个时候需要在SwiftFile.swift中加入一个声明@objcMembers以表示文件中成员可以被OC调用:

    import UIKit
    
    @objcMembers
    class SwiftFile: NSObject {
    
        var swiftName = ""
    }
    

    5.如此则大功告成!

    展开全文
  • [Swift]1.在OC项目里的OC代码调用Swift方法,Swift代码里调用OC代码。2.在Swift项目里的Swift代码里调用OC代码,OC代码调用Swift方法。
  • oc调用swift

    2015-11-14 18:05:06
    OC调用Swift 如果你想在Objective-C工程中,嵌入Swift文件,实现OC调用Swift,那么这篇文章就能帮助你,由于本人最近在开发Swift项目,所以实现过OC调用Swift,在这过程中遇到过一些瓶颈,特此,将此文奉上,供大家...

    OC调用Swift


    如果你想在Objective-C工程中,嵌入Swift文件,实现OC调用Swift,那么这篇文章就能帮助你,由于本人最近在开发Swift项目,所以实现过OC调用Swift,在这过程中遇到过一些瓶颈,特此,将此文奉上,供大家参考。

    OC调用Swift文件,需要创建桥接头文件,这个文件是当你在OC开发环境中创建Swift文件时由Xcode生成,该桥接头文件的命名是:<工程名>-Bridging-Header.h,它的作用是实现OC和Swift文件混编,并且如果我们想在当前OC类中调用Swift文件,必须在当前OC类中包含头文件,它的命名是:<工程名>-Swift.h,该头文件是由Xcode本身去维护,当我们点击进入到该头文件时,会看到Swift文件被编译成了OC封装的接口。

    下面让我们来通过一个小Demo,进一步了解如何实现OC调用Swift。


    第一步:创建OC工程

    启动Xcode 7.1,然后单击File→New→Project菜单,在打开的Choose atemplate for your new project界面中选择“iOS →Application→Single View Application”工程模板(如下图所示)。


    选中Single View Application单击“Next”,会出现如下图所示



    这里我们将工程名命名为OCCallSwift,单击“Next”,就会出现下图所示的界面


    单击“Create”,这时我们的OC工程就创建好了。

    接下来我们创建一个OC的类,类名为OCViewController,具体怎么创建就不详细说了。


    第二步:在OC工程中添加Swift文件


    在当前OC工程中,创建Swift文件,如下图所示:


    选中Cocoa Touch Class,点击“Next”,此时会跳到下图:


    这里我们将Swift文件命名为SwiftViewController,将Language设置为Swift,单击“Next”,跳到下图:


    这时单击“Creat”,就会弹出“Would you like to configure an Objective-C bridging header?”,如下图所示


    单击“Create Bridging Header”,这时我们就在OC工程中创建好了一个Swift文件,如下图所示



    第三步:实现OC调用Swift

    这里我们就简单实现一下在OC类中跳转到Swift文件中

    1)在OC类中包含头文件

    #import <OCCallSwift-Swift.h>,命名规则为:<工程名>-Swift.h,如下图所示


    2)在OC类中调用Swift文件,跟OC类调用OC类实现方式一样,如下图所示:



    这样我们就实现了OC调用Swift。


    友情提示:1.以上的代码是在Xcode7.1中实现,并且是新工程;

    2.必须创建桥接头文件(“Create Bridging Header);

    3.必须在调用Swift文件的OC类中包含如下头文件:<工程名>-Swift.h

    4.如果以上条件全部符合,但是你在一个老的OC应用中调用Swift,有可能出现下面情况'<工程名>.Swift' file not found,这时你就应该在Xcode中的Build Setting中找到"Defines module",将其改为Yes


    特别说明:1. 以上Swift文件均指Swift类;

      2. Swift语言为Swift2.0版本。


    著作权声明:本文为原创,欢迎转载分享。请尊重作者劳动,转载时保留该声明和作者博客链接,谢谢

    展开全文
  • 最新一些学妹问起,所以抽点时间来写的,适合入门级别的swiftOC 混编 的程序猿。 本文章将从两个方向分别介绍 OCswift 混编 1. 第一个方向从 swift工程 中引入 oc类   1. 1 如何在swift的类中使用...
    
    

    目录(?)[+]

    最新一些学妹问起,所以抽点时间来写的,适合入门级别的swift 与 OC 混编 的程序猿。  

    本文章将从两个方向分别介绍 OC 与 swift 混编  


    1. 第一个方向从 swift工程 中引入 oc类 

        1. 1 如何在swift的类中使用oc类
        1.2  如何在swift中实现oc的代理方法
        1.3   如何在swift中实现oc的Block回调

    2. 第二个方向从OC工程中引入swift类

        2.1  如何在OC类中使用swift类
        2.2   如何在OC中实现swift的代理方法
        2.3   如何在OC中实现swift中类似Block回调


    下面是具体的实现过程:

     1.1  如何在swift的类中使用oc类? 

    1.  Swift工程中引入OC类。 具体实现过程。

        1.1 新建一个swift工程类。 取名 swiftOrOC

        1.2  实现的功能为 :  从swift. viewController.swift 中 push到 OC语言 secondViewController 控制器

    1.2.1  新建SecondViewController 类 。

            

         1.2.2 建立桥接文件。 (很重要)


        一定要记得点击这个按钮。 

           1.2.3  接下来工程目录如下:

           

         1.2.4 接下来就可以实现具体的跳转功能了。 

          ViewController.swift中具体实现

         

    [objc] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. import UIKit  
    2.   
    3. class ViewController: UIViewController {  
    4.   
    5.     @IBOutlet weak var hintLabel: UILabel!  //稍后用来显示回调  
    6.       
    7.     // push 到 oc controller  
    8.     @IBAction func pushAction(_ sender: AnyObject) {  
    9.         let secondVC = SecondViewController.init()  
    10.         self.navigationController?.pushViewController(secondVC, animatedtrue)  
    11.     }  
    12.       
    13.     override func viewDidLoad() {  
    14.         super.viewDidLoad()  
    15.         // Do any additional setup after loading the view, typically from a nib.  
    16.     }  
    17.   
    18.     override func didReceiveMemoryWarning() {  
    19.         super.didReceiveMemoryWarning()  
    20.         // Dispose of any resources that can be recreated.  
    21.     }  
    22.   
    23.   
    24. }  


    1.2 如何在swift中实现oc的代理方法

           1.2.1 首先在 SecondViewController.h 中声明一个协议。具体代码

            

    [objc] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. #import <UIKit/UIKit.h>  
    2.   
    3. @protocol SecondDelegate <NSObject>  
    4.   
    5. -(void)refreshHintLabel:(NSString *)hintString;  
    6.   
    7. @end  
    8.   
    9. @interface SecondViewController : UIViewController  
    10.   
    11. @property (nonatomic,weak)id<SecondDelegate> secondDelegate;  
    12. @end  
         1.2.2 然后在SecondViewController.m中,通过一个UITextField,让用户输入内容,当用户点击返回的时候把输入框中的内容返回给对应的代理。具体代码如下

        

    [objc] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. #import "SecondViewController.h"  
    2. #import "UIViewController+BackButtonHandler.h"  
    3.   
    4. @interface SecondViewController ()  
    5. {  
    6.     UITextField *textField;  
    7. }  
    8. @end  
    9.   
    10. @implementation SecondViewController  
    11.   
    12. - (void)viewDidLoad {  
    13.     [super viewDidLoad];  
    14.     self.title = @"oc";  
    15.       
    16.     self.view.backgroundColor  = [UIColor whiteColor];  
    17.       
    18.     textField = [[UITextField alloc]initWithFrame:CGRectMake(100100200200)];  
    19.     textField.placeholder = @"请输入用户名";  
    20.     [self.view addSubview:textField];  
    21.     [textField.layer setBorderColor:[UIColor blackColor].CGColor];  
    22.     [textField.layer setBorderWidth:1.0];  
    23.   
    24.       
    25. }  
    26.   
    27. -(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{  
    28.     [self.view endEditing:YES];  
    29. }  
    30. #pragma mark 返回上一页回调 ,将用户输入的用户名传回给 ViewController.swift  
    31. -(BOOL)navigationShouldPopOnBackButton{  
    32.     if ([_secondDelegate respondsToSelector:@selector(refreshHintLabel:)]) {  
    33.         [_secondDelegate refreshHintLabel: textField.text];  
    34.     }  
    35.       
    36.     return YES;  
    37. }  
    38.   
    39.   
    40. - (void)didReceiveMemoryWarning {  
    41.     [super didReceiveMemoryWarning];  
    42.     // Dispose of any resources that can be recreated.  
    43. }  
    44.   
    45. /* 
    46. #pragma mark - Navigation 
    47.  
    48. // In a storyboard-based application, you will often want to do a little preparation before navigation 
    49. - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 
    50.     // Get the new view controller using [segue destinationViewController]. 
    51.     // Pass the selected object to the new view controller. 
    52. } 
    53. */  
    54.   
    55. @end  
      1.2.3 接下来就非常简单了,让ViewController.swift只需要成为SecondViewController的代理,然后遵循她的协议,就可以了。 具体代码如下。

           1.2.3.1 遵循协议

      

         1.2.3.2 成为代理,并实现协议方法,更改controller.swift中hintLabel的text。

    [objc] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. // push 到 oc controller  
    2. @IBAction func pushAction(_ sender: AnyObject) {  
    3.     let secondVC = SecondViewController.init()  
    4.     secondVC.secondDelegate = self;  
    5.     self.navigationController?.pushViewController(secondVC, animatedtrue)  
    6. }  
    7.   
    8. // SecondViewControll的代理方法  
    9. func refreshHintLabel(_ hintString: String!) {  
    10.     hintLabel.text = "secondView textView.text = " + hintString;  
    11. }  

     1.3   如何在swift中实现oc的Block回调

    1.3.1 具体过程与1.2小节一样。 直接上代码。

            1.3.2 声明block;

             

    [objc] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. typedef void(^RefreshHintLabelBlock)(NSString *hintString);  
    2.   
    3. @interface SecondViewController : UIViewController  
    4. @property (nonatomiccopy) RefreshHintLabelBlock hintBlock;  
    5. @end  

            1.3.3 block的回调。 SecondViewController.m中

    [objc] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. #pragma mark 返回上一页回调 ,将用户输入的用户名传回给 ViewController.swift  
    2. -(BOOL)navigationShouldPopOnBackButton{      
    3.     if (_hintBlock) {  
    4.         _hintBlock(textField.text);  
    5.     }  
    6.     return YES;  
    7. }  

            1.3.4 在swift类中调用 oc的block.

    [objc] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. // push 到 oc controller  
    2. @IBAction func pushAction(_ sender: AnyObject) {  
    3.     let secondVC = SecondViewController.init()  
    4.       secondVC.secondDelegate = self;  
    5.     secondVC.hintBlock = {(t:String?)in  
    6.         self.hintLabel.text = "secondView textView.text = " + t!  
    7.     }  
    8.     self.navigationController?.pushViewController(secondVC, animatedtrue)  
    9. }  


       工程已上传到Git上,git地址: https://github.com/zhonggaorong/SwiftOrOc/tree/master

    2.  OC工程中引入swift类。 具体实现过程。

        耽误了不少时间, 今天才开始写oc工程中引入swift类。

        demo地址: 

      

         2.1  如何在OC类中使用swift类


           2.1.1   新建一个基于OC语言的工程 ,取名 OcOrSwiftTwo
           2.1. 2  实现的功能为 : 从oc类 viewcontroller中, push 至 swift语言 SecondViewController  ,然后SecondViewController可以通过代理或者swift闭包把值传回viewcontroller. 
           2.1.3   当前文件目录看下图:  (第四个箭头: 桥接文件)
            
      
        2.2   如何在OC中实现swift的代理与闭包Block方法
                
        2.2.1 如何在oc中引入swift类。#import "工程名-swift.h"
    [objc] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. #import "OcOrSwiftTwo-swift.h"  
       2.2.2 在secondViewController.swift 中实现代理与闭包,代码如下:
        注意: @objc(代理名)  才能在外部可见这个代理
     
    [objc] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. import UIKit  
    2. import Foundation  
    3.   
    4. // 必须加上@objc 代理才能在oc类中可见。  
    5. @objc(EditTextFieldDelegate)  
    6. protocol EditTextFieldDelegate:NSObjectProtocol {  
    7.     func editTextField(_ str: String) -> Void  
    8. }  
    9.   
    10. @objc(SecondViewController)  
    11. class SecondViewController: UIViewController {  
    12.   
    13.     var editorDelegate:EditTextFieldDelegate?  
    14.     var textField:UITextField?  
    15.     var addButton:UIButton?  
    16.     var pushButton:UIButton?  
    17.       
    18.     typealias editorBlock = (_ t:String) -> Void  
    19.     var myEidtorBlock:editorBlock?  
    20.       
    21.     override func viewDidLoad() {  
    22.         super.viewDidLoad()  
    23.         self.view.backgroundColor = UIColor.white  
    24.         textField = UITextField.init(frame: CGRect.init(x: 50, y60, width200, height50))  
    25.         textField?.placeholder = "输入返回首页的内容"  
    26.         self.view.addSubview(textField!)  
    27.           
    28.         addButton = UIButton.init(type: .custom)  
    29.         addButton?.setTitleColor(UIColor.black, for.normal)  
    30.         addButton?.setTitle("pop", for.normal)  
    31.         addButton?.frame = CGRect.init(x: 50, y150, width200, height50)  
    32.         addButton?.layer.borderColor = UIColor.black.cgColor  
    33.         addButton?.layer.borderWidth = 1.0  
    34.         addButton?.addTarget(self, action: #selector(popAction), for.touchUpInside)  
    35.         self.view.addSubview(addButton!)  
    36.           
    37.           
    38.           
    39.         pushButton = UIButton.init(type: .custom)  
    40.         pushButton?.setTitleColor(UIColor.black, for.normal)  
    41.         pushButton?.setTitle("push", for.normal)  
    42.         pushButton?.frame = CGRect.init(x: 50, y250, width200, height50)  
    43.         pushButton?.layer.borderColor = UIColor.black.cgColor  
    44.         pushButton?.layer.borderWidth = 1.0  
    45.         pushButton?.addTarget(self, action: #selector(pushAction), for.touchUpInside)  
    46.         self.view.addSubview(pushButton!)  
    47.           
    48.     }  
    49.       
    50.     func popAction() -> Void {  
    51.           
    52.         if editorDelegate != nil {  
    53.             editorDelegate?.editTextField((textField?.text)!)  
    54.         }  
    55.           
    56.         if ((self.myEidtorBlock) != nil){  
    57.             self.myEidtorBlock!((textField?.text!)!)  
    58.         }  
    59.           
    60.         self.navigationController?.popViewController(animated: true)  
    61.     }  
    62.       
    63.       
    64.     func pushAction() -> Void {  
    65.         let three = ThreeViewController.init()  
    66.         self.navigationController?.pushViewController(three, animatedtrue)  
    67.           
    68.     }       
        2.2.3   在oc类中viewcontroller.m 文件中实现SecondviewController.swift的相关代理与闭包(block). 代码如下:
       
    [objc] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. #import "ViewController.h"  
    2. #import "OcOrSwiftTwo-swift.h"  
    3.   
    4. @interface ViewController ()<EditTextFieldDelegate>  
    5. @property (nonatomicstrongUITextField *showTextField;  
    6. @property (nonatomicstrongUIButton *pushButton;  
    7.   
    8. @end  
    9.   
    10. @implementation ViewController  
    11.   
    12. - (void)viewDidLoad {  
    13.     [super viewDidLoad];  
    14.     _showTextField = [[UITextField alloc]initWithFrame:CGRectMake(50100 , 20050)];  
    15.     _showTextField.placeholder = @"swift传回的文本内容";  
    16.     _showTextField.adjustsFontSizeToFitWidth = YES;  
    17.     _showTextField.enabled = NO;  
    18.     [self.view addSubview:_showTextField];  
    19.       
    20.     _pushButton = [UIButton buttonWithType:UIButtonTypeCustom];  
    21.     [_pushButton.layer setBorderColor:[UIColor blackColor].CGColor];  
    22.     [_pushButton.layer setBorderWidth:1.0];  
    23.     [_pushButton setFrame:CGRectMake(5020020050)];  
    24.     [_pushButton setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];  
    25.     [_pushButton setTitle:@"push" forState:UIControlStateNormal];  
    26.     [_pushButton addTarget:self action:@selector(pushAction) forControlEvents:UIControlEventTouchUpInside];  
    27.       
    28.     [self.view addSubview:_pushButton];  
    29. }  
    30.   
    31.   
    32.   
    33.   
    34. -(void)pushAction{  
    35.     SecondViewController *second = [[SecondViewController alloc]init];  
    36.     // second.editorDelegate = self;  
    37.       
    38.     /* 
    39.       swift中的闭包回滴 
    40.      */  
    41.     second.myEidtorBlock = ^(NSString *str) {  
    42.         _showTextField.text = [NSString stringWithFormat:@"second传回信息: %@",str];  
    43.     };  
    44.     [self.navigationController pushViewController:second animated:YES];  
    45. }  
    46.   
    47. #pragma mark swift中的代理  
    48. -(void)editTextField:(NSString *)str{  
    49.     _showTextField.text = [NSString stringWithFormat:@"second传回信息: %@",str];  
    50. }  
    51.   
    52. - (void)didReceiveMemoryWarning {  
    53.     [super didReceiveMemoryWarning];  
    54.     // Dispose of any resources that can be recreated.  
    55. }  

    展开全文
  • iOS oc 调用 swift

    2019-07-03 07:14:24
    如股票oc调用swift里面的代码 需要包含固定这个头文件 项目名称 LiqunSwiftDemo-Swift.h #ProjectName#-Swift.h 固定的写法 swift 目的 是取代oc 但是 不会完全取代 只是前端的替换 LiqunSwiftDemo-Swift 点...

    如股票oc要调用swift里面的代码 需要包含固定这个头文件

    项目名称 LiqunSwiftDemo-Swift.h

             #ProjectName#-Swift.h

    固定的写法

    swift 目的 是取代oc 但是 不会完全取代 只是前端的替换

    LiqunSwiftDemo-Swift 点进去 可以看到 所有的swift代码 都产生了 对应的一个 oc的类

    也就是 编译过程中 swift 先转换成 oc代码 再由oc代码转换成 c代码 (swift 在oc 之上 编译器前端的语法的转换 不涉及到编译器后端的转换)

     1,  #import <LiqunSwiftDemo-Swift.h>

     2,  写一个swift 类

    import Foundation
    
    class TestSwift : NSObject {
        override init() {//
            print("in init")
        }
        func someFunc(){
            print("in someFunc")
        }
        func getArrayByValue(v1:String ,v2:String) -> NSArray{
            return [v1 , v2]
        }   
    }
    

     在oc 中调用

        TestSwift *ts = [[TestSwift alloc]init];

        [ts someFunc];

        NSArray * arr = [ts getArrayByValue:@"今天天气" v2:@"---没有雾霾"];

        for(NSString *str in arr){

            NSLog(@"str is %@",str);

        }

    //结果

    in init

    in someFunc

    2016-01-15 15:39:27.586 LiqunSwiftDemo[1776:117383] str is 今天天气

    2016-01-15 15:39:31.346 LiqunSwiftDemo[1776:117383] str is ---没有雾霾

    转载于:https://www.cnblogs.com/someonelikeyou/p/5133536.html

    展开全文
  • OC调用Swift方法

    2018-05-02 15:36:48
    第一步:创建桥接文件第二步:配置桥接文件第三步:创建pch文件并配置其路径 第四步:在pch文件中导入如下头文件,注意:...,这里的xxx就是第二步中的Module name, 注意不要写错了 第五步:OC中直接调用Swift...
  • OC 调用 Swift 方法

    2018-09-06 11:47:34
    1.新建Swift文件之前做以下设置 2.创建Swift文件后,会提示创建桥接文件,点击创建 3.Swift 类 import Foundation class RealmManager: NSObject { override init() { super.init() } @objc func ...
  • OCswift相互调用

    2017-04-26 11:39:33
    一、OC调用swift文件 二、swift调用OC文件 三、注意和总结 添加: 四、自定义桥接文件  一、OC调用swift文件  在OC项目中创建一个swift文件的时候,Xcode 会提示 需要创建一个桥接文件,点确定...
  • 所以慢慢多了很多OC混编Swift的项目,但是其实swift调用OC还是挺简单的,把OC项目慢慢转成swift问题不大。swift可以算是OC更上层的语言,我这里说的坑都是关于SwiftOC的,很奇葩吧,还有把Swift项目转成OC的,一句...
  • Swift创建了这样的一个单例 @objc open class Danli: NSObject { static let ... //在oc中这样写才能被调用 @objc open class func sharedInstance() -&amp;gt; Danli { return NFX.sw...
  • iOS OC调用Swift

    2019-10-17 17:10:34
    iOS OC调用Swift 需要四步就能完成 第一步 Build Settings->Defines Module 设置为 YES MOdule Name 配置工程名 第二步 把swift 拖入项目,会提示是否创建桥接文件,选择创建 非拖入式,没有提示 手动创建 选择 ...
  • 场景描述:在OC类的方法中,调用Swift类的方法,报错:No visible @interface for ‘CCC’ declares the selector ‘MMM’(CCC为类名,MMM为方法名) // OC中的方法: - (void)test { NSLog(@"hello ...
  • OC调用SwiftOC调用Swift方法比较简单。但是需要注意以下几点: 1.需要在当前OC类里导入xxx-Swift.h头文件,其中xxx为项目名称(与你的项目配置相关,具体配置方式见上一篇文章) 2.OC类里仅可以调用public的Swift...
  • swift调用oc的方法: 1、桥接文件,一般是swift工程,在创建一个oc文件时,系统自动添加(不用改名,...oc调用swift 1、首先设置一下Packing 进入TARGETS -&gt;Build Settings -&gt; Packaging 中 设...
  • swift开发过程中我们难免会使用一些OC的开源来附注项目开发。这就涉及到OCswift的混编了,正好本人最近也在模仿斗鱼直播的项目,自己也使用了OC的第三方,今天就给大家介绍一下自己的使用过程。 一、导入第...
  • iOS OC项目调用Swift

    2017-03-17 13:51:27
    网上有很多关于OC项目中使用Swift类的方法,但是亲自试了之后,发现不够详细,多次尝试后,终于找出详细的方法。 现把方法和遇到的问题,记录下来,方便其他同仁借鉴.
  • OC工程调用Swift方法

    2017-01-11 11:45:08
    1.建一个OC工程命名为SwiftOC 2.新建一个swfit文件命名为Test.swift,会弹出提示,选择Create Bridging Header建立桥接文件,系统会建立“工程名-Bridging-Header.h” 3.配置工程 设置Defines Module 为Yes ...
  • 首先就是在 targets->Build Setting ->Packaging 中设置 Defines Module为YES  然后创建swift文件时会生成"文件名-Bridging-Header.h"这样一个桥接文件 怎样使用cocoapods就不多... 因为swift使用的是框架而不是静态
  • 本文章将从两个方向分别... 1 如何在swift的类中使用oc类 1.2 如何在swift中实现oc的代理方法 1.3 如何在swift中实现oc的Block回调 2 二个方向从OC工程中引入swift类    2.1 如何在OC类中使用swift类 2.2 如何...
1 2 3 4 5 ... 20
收藏数 9,422
精华内容 3,768