Swift基础之OC文件调用Swift代码(在上次的基础上写的)

前两天刚写过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


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hbblzjy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值