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
Swift基础之OC文件调用Swift代码(在上次的基础上写的)的更多相关文章
- OC工程调用Swift方法
1.建一个OC工程命名为SwiftOC.如图所示: 2.新建一个swfit文件命名为Test.swift,会弹出提示,选择Create Bridging Header建立桥接文件,系统会建立“工程名- ...
- 在 OC 中调用 Swift 代码
1.在 Objective-C 项目中使用 Swift 代码 1)在 OC 项目中创建 .Swift 文件,文件中的格式为其本有的格式. 2)Xcode 提示是否创建 Objective-C brid ...
- Swift: 在Swift中桥接OC文件(自己创建的类文件、第三方库文件)
一.介绍 随着Swift的逐渐成熟,使用swift开发或者混合开发已经成为了一个趋势,本身苹果公司也十分推荐使用Swift这门新语言.目前Swift已经更新到了3.0,估计没有多久4.0就要出来了.那 ...
- 在OC中调用Swift类中定义delegate出现:Property 'delegate' not found on object of type ...
找了许久没找到答案, 在下面的链接中, 我解决了这个问题: http://stackoverflow.com/questions/26366082/cannot-access-property-of- ...
- python基础1 - 多文件项目和代码规范
1. 多文件项目演练 开发 项目 就是开发一个 专门解决一个复杂业务功能的软件 通常每 一个项目 就具有一个 独立专属的目录,用于保存 所有和项目相关的文件 – 一个项目通常会包含 很多源文件 在 ...
- OC调用Swift 整理步骤!总结别人的!方便自己查找!
1. 2. 上面的修改了一个配置项,有一个Product Module Name在后面会使用. 在工程里面点击File/New/File…,选择iOS/Source/Cocoa Touch Class ...
- iOS oc 调用 swift
如股票oc要调用swift里面的代码 需要包含固定这个头文件 项目名称 LiqunSwiftDemo-Swift.h #ProjectName#-Swift.h 固定的写法 swift 目的 是取代o ...
- [Swift]在Swift项目中创建桥接头文件,Swift文件和Objective-C文件相互调用
创建一个Swift项目[demo],以下内容Swift文件和Objective-C文件相互调用都是在Swift项目中. 一.Swift文件调用Objective-C文件 新建文件夹[SupportFi ...
- 在Objc项目中调用Swift
之前的文字中记录了在Swift项目中调用OC的相关代码,比较简单直接 传送门 但是在OC中调用swift代码则不是那么的和谐,网络上很多文章业已经有点陈旧.记录步骤如下: 1.创建OC项目 (1)启动 ...
随机推荐
- 《Java技术》第一次作业——Java语言基础
学习总结 Scanner类实现基本数据输入的方法 Scanner 使用分隔符模式将其输入分解为标记,默认情况下该分隔符模式与空白匹配.然后可以使用不同的 next 方法将得到的标记转换为不同类型的值. ...
- python2.7入门---变量类型
这篇文章呢,主要是用来记录python中的变量类型学习内容的.接下来就来看一下变量类型,那么什么是变量呢.变量存储在内存中的值.这就意味着在创建变量时会在内存中开辟一个空间.基于变量的数据类型,解 ...
- 你知道src、url、href的全称吗?
url:Uniform Resource Locator统一资源定位符 src:Source资源 href:Hypertext Reference超文本引用
- js删除数组中的元素delete和splice的区别
例如有一个数组是 :var textArr = ['a','b','c','d']; 这时我想删除这个数组中的b元素: 方法一:delete 删除数组 delete textArr[1] 结果为: ...
- Go 完整实现版本比较 VersionCompare 函数
[转] http://www.syyong.com/Go/Go-implementation-version-comparison-VersionCompare-function.html Versi ...
- 京东消息中间件JMQ
http://blog.csdn.net/javahongxi/article/details/54411464 [京东技术]京东的MQ经历了JQ->AMQ->JMQ的发展,其中JQ的基于 ...
- Kinect2.0 MultiSourceFrameReader 的 AcquireLatestFrame 方法获取不到帧的解决方案
先把大致要写的东西写一下,手里的活忙完了再完善. 在代码中使用下边的语句,获取Kinect中,colorFrame, depthFrame, bodyIndex三种帧,但是经常会遇到在后边的程序中处理 ...
- Python中迭代输出(index,value)的几种方法
需求如下:迭代输出序列的索引(index)和索引值(value). 1.创建测试列表: >>> lst = [1,2,3,4,5] 2.实现方法如下: #方法1:range()+le ...
- PyChram简单使用教程
一.PyChram下载官网:http://www.jetbrains.com/pycharm Windows:http://www.jetbrains.com/pycharm/download/#se ...
- 上篇:python的基本数据类型以及对应的常用方法(数字、字符串、布尔值)
为了日后便于查询,本文所涉及到的必记的基本字符串方法如下: "分隔符".join(字符串) #将字符串的每一个元素按照指定分隔符进行拼接.split("字符串&qu ...