前两天刚写过Swift调用OC,今天在原来的基础上,实现OC调用Swift。

首先,创建一个OneSwiftFile.swift文件,创建一个继承于NSObject的类(这个地方你可以自己选择继承的父类)

然后在类中创建几个方法,方便在OC文件中使用

class OneSwiftFile:NSObject{
    override init() {
        NSLog("这是在init方法中。。。");
    }
    
    //创建一个方法
    func someFunc() {
        NSLog("这是在someFunc()方法中.......");
    }
    
    //创建一个带有参数和返回值得方法
    func someArrayByValue(v1:String,v2:String) -> NSArray {
        return [v1,v2];
    }
    //创建一个带有标签的方法
    func someArrayValue(v1:String,withValue v2:String,withValue v3:String) -> NSArray {
        return [v1,v2,v3];
    }

//这里说一下,带标签和不带标签的区别://创建一个带有标签的方法,如果带有标签,就会以标签形式显示,如果没有标签,就会以参数名为标签,可以比较下面的方法:
    /*
     - (NSArray * _Nonnull)someArrayByValue:(NSString * _Nonnull)v1 v2:(NSString * _Nonnull)v2;
     - (NSArray * _Nonnull)someArrayValue:(NSString * _Nonnull)v1 withValue:(NSString * _Nonnull)v2 withValue:(NSString * _Nonnull)v3;
     */

}

这里要强调一点,当你写完方法后,编译一下,就会在#import <项目名称-Swift.h>的头文件(这个头文件下面会说明)最下方生成对应的方法,这样可以出现提示,方便方法调用

这时候,Swift文件完成以后,我们开始考虑如何使用类中的方法,首先在创建的OC文件(BgImgView.h.m)中导入头文件,头文件的格式是:#import <项目名称-Swift.h>,如:#import <SwiftAndOCChangeDemo-Swift.h>

解释一下,这个头文件在文件列表中是找不到的,但是可以点进去查看,文件的最下面就是系统自动将所有的Swift语言的文件都进行了一个OC语言的编译,同时包括Swift文件中的方法生成,这进一步说明了,Swift想要取代OC,但又不能完全去除OC,因为这是基础,最底层是C语言

如图:

然后在OC文件中创建对象,调用方法

//调用一下OneSwiftFile.swift文件中的方法
    OneSwiftFile *oneS = [[OneSwiftFile alloc]init];
    //someFunc方法
    [oneS someFunc];
    
    //带参数和返回值的方法
    NSArray *arr = [oneS someArrayByValue:@"好好学习" v2:@"天天向上"];
    for (NSString *str in arr)
    {
        NSLog(@"输出每一个字符串...%@",str);
    }
    //带有标签的方法
    arr = [oneS someArrayValue:@"哈哈" withValue:@"呵呵" withValue:@"嘿嘿"];
    for (NSString *str in arr)
    {
        NSLog(@"输出每一个字符串...%@",str);
    }

结果展示:


源码下载:http://download.csdn.net/detail/hbblzjy/9610203


Swift基础之OC文件调用Swift代码(在上次的基础上写的)的更多相关文章

  1. OC工程调用Swift方法

    1.建一个OC工程命名为SwiftOC.如图所示: 2.新建一个swfit文件命名为Test.swift,会弹出提示,选择Create Bridging Header建立桥接文件,系统会建立“工程名- ...

  2. 在 OC 中调用 Swift 代码

    1.在 Objective-C 项目中使用 Swift 代码 1)在 OC 项目中创建 .Swift 文件,文件中的格式为其本有的格式. 2)Xcode 提示是否创建 Objective-C brid ...

  3. Swift: 在Swift中桥接OC文件(自己创建的类文件、第三方库文件)

    一.介绍 随着Swift的逐渐成熟,使用swift开发或者混合开发已经成为了一个趋势,本身苹果公司也十分推荐使用Swift这门新语言.目前Swift已经更新到了3.0,估计没有多久4.0就要出来了.那 ...

  4. 在OC中调用Swift类中定义delegate出现:Property 'delegate' not found on object of type ...

    找了许久没找到答案, 在下面的链接中, 我解决了这个问题: http://stackoverflow.com/questions/26366082/cannot-access-property-of- ...

  5. python基础1 - 多文件项目和代码规范

    1. 多文件项目演练 开发 项目 就是开发一个 专门解决一个复杂业务功能的软件 通常每 一个项目 就具有一个 独立专属的目录,用于保存 所有和项目相关的文件 –  一个项目通常会包含 很多源文件 在 ...

  6. OC调用Swift 整理步骤!总结别人的!方便自己查找!

    1. 2. 上面的修改了一个配置项,有一个Product Module Name在后面会使用. 在工程里面点击File/New/File…,选择iOS/Source/Cocoa Touch Class ...

  7. iOS oc 调用 swift

    如股票oc要调用swift里面的代码 需要包含固定这个头文件 项目名称 LiqunSwiftDemo-Swift.h #ProjectName#-Swift.h 固定的写法 swift 目的 是取代o ...

  8. [Swift]在Swift项目中创建桥接头文件,Swift文件和Objective-C文件相互调用

    创建一个Swift项目[demo],以下内容Swift文件和Objective-C文件相互调用都是在Swift项目中. 一.Swift文件调用Objective-C文件 新建文件夹[SupportFi ...

  9. 在Objc项目中调用Swift

    之前的文字中记录了在Swift项目中调用OC的相关代码,比较简单直接 传送门 但是在OC中调用swift代码则不是那么的和谐,网络上很多文章业已经有点陈旧.记录步骤如下: 1.创建OC项目 (1)启动 ...

随机推荐

  1. CSS :focus 选择器

    :focus 选择器用于选取获得焦点的元素. <!DOCTYPE html> <html> <head> <style> input:focus { b ...

  2. CSS中的ul与li样式详解 list-type

    转自新浪博客http://blog.sina.com.cn/u/2539885750 ul和li列表是使用CSS布局页面时常用的元素.在CSS中,有专门控制列表表现的属性,常用的有list-style ...

  3. spring @Value 设置默认值

    @Value("${spring.value.test}") private String value; 如果配置文件中没有设置 spring.value.test 在启动的时候讲 ...

  4. 62. Unique Paths(中等,我自己解出的第一道 DP 题^^)

    A robot is located at the top-left corner of a m x n grid (marked 'Start' in the diagram below). The ...

  5. 漫谈Web缓存架构

    计算机领域多处地方用到缓存,比如说为了缓解CPU和内存之间的速度不匹配问题,我们往往通过增加一级.二级.三级缓存,CPU先从缓存中取指令,如果取不到,再从内存中取,并更新缓存,同时,根据程序的局部性原 ...

  6. vmware 12中安装MAC OS X Lion 10.7

    下载并安装vmware.    下载并安装MAC补丁.    创建虚拟机.    设置ISO文件.    开启虚拟机.    安装vmware tools. 1. 下载并安装vmware.我是直接在腾 ...

  7. AWS EC2 CentOS release 6.5 部署zookeeper、kafka、dubbo

    AWS EC2 CentOS release 6.5 部署zookeeper.kafka.dubbo参考:http://blog.csdn.net/yizezhong/article/details/ ...

  8. Dynamics 365 你所期待的子网格编辑终于来了

    Dynamics 365的online版本已经在11月1号发布了,on-premises版也在没几天后发布,今天略看了一眼 what's new 一眼就看到了 editable grids,这个不用我 ...

  9. Eclipse调试(1)——基础篇

    作为使用Eclipse的程序员都会使用它的Debug.但是有不少人只会用F6.F8,其他功能知之甚少.今天我就来总结一下我在使用eclipse的debug时的一些个人经验.水平有限,不足之处还请赐教. ...

  10. Scheme N皇后

    (define (range n) (define (recur n) () '() (cons n (recur (- n ))))) (recur (- n ))) (define (flatte ...