在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
原文地址:http://www.cocoachina.com/swift/20150608/12025.html
一、解决这个问题 Swift项目须要使用封装好的Objective-c组件、第三方类库,苹果提供的解决方式可以处理日常大部分需求,但还不能称之为完美。混编过程中会遇到非常多问题。本文将Swift兼容Objective-c的问题汇总,以帮助大家更好的使用Swift,内容列表例如以下: 1. Swift调用Objective-c代码 2. Objective-c调用Swift代码 3. Swift兼容Xib/Storyboard 4. Objective-c巧妙调用不兼容的Swift方法 5. 多Target编译错误解决 6. 第三方类库支持 二、基础混合编程
Swift与Objective-c的代码相互调用。并不像Objective-c与C/C++那样方便,须要做一些额外的配置工作。不管是Swift调用Objective-c还是Objective-c调用Swift,Xcode在处理上都须要两个步骤:
2.1 Swift调用Objective-c代码 Xcode对于Swift调用Objective-c代码。除宏定义外,其他支持相对完好。 2.1.1 使用Objetvie-c的第一步 告诉Xcode、哪些Objective-c类要使用。新建.h头文件,文件名称能够随意取。建议採用“项目名-Bridging-Header.h”命令格式。
Tips Swift之IOS项目,在Xcode6创建类文件。默认会自己主动选择OS X标签下的文件,这时一定要选择iOS标签下的文件,否则会出现语法智能提示不起作用。严重时会导致打包出错。 2.1.2 第二步,Target配置,使创建的头文件生效
设置Objective-C Bridging Header时,路径要配置正确,比如:创建的名为“ILSwift-Bridging-Header.h”文件。存于ILSwift项目文件夹的根文件夹下。写法例如以下:
当然,在新项目中,直接创建一个Objective-c类,Xcode会提示:
直接选择Yes就可以,假设不小心点了其他button。能够依照上面的步骤一步一步加入。 2.2 Objective-c调用Swift代码 2.2.1 Objective-c调用Swift代码两个步骤 第一步告诉Xcode哪些类须要使用(继承自NSObject的类自己主动处理,不须要此步骤),通过keyword@objc(className)来标记
第二步引入头文件,Xcode头文件的命名规则为
示比例如以下:
Tips 不清楚SWIFT_MODULE_NAME可通过下面步骤查看
2.2.2找不到$(SWIFT_MODULE_NAME)-Swift.h
1.遇到此问题可按下面步骤做常规性检查
2.头文件循环 在混合编程的项目中,因为两种语言的同一时候使用,常常会出现下面需求:在Swift项目中须要使用Objectvie-c写的A类。而A类又会用到Swift的一些功能,头文件的循环。导致编译器不能正确构建$(SWIFT_MODULE_NAME)-Swift.h,遇到此问题时,在.h文件做例如以下处理
在Objevtive-c的.m文件最上面,加入
出现Use of undecalared identifier错误或者找不到方法,例如以下:
引起的原因有下面几种可能:
全部评论
专题导读
热门推荐
热门话题
阅读排行榜
|
请发表评论