标签:
前两天刚写过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代码(在上次的基础上写的)
标签:
原文地址:http://blog.csdn.net/hbblzjy/article/details/52288221