Using Swift with Cocoa and Objective-C--在同个project中使用Swift和在同个project中
http://www.cocoachina.com/newbie/basic/2014/0605/8688.html
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbmV4dGo=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
Swift with Cocoa and Objective-C--Swift and Objective-C in the Same Project。本篇译者:haolloyin(github主页),敬请勘误。
你能够直接往现有project中简单地加入还有一种语言的文件。这样的自然的工作流使得创建混合语言的应用或framework target,与用单独一种语言时一样简单。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbmV4dGo=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
- #import "XYZCustomCell.h"
- #import "XYZCustomView.h"
- #import "XYZCustomViewController.h"
这个路径必须是头文件自身的路径。而不是它所在的文件夹。
之后当前 target 的全部 Swift 文件都能够使用这些头文件里的方法,不须要不论什么import语句。
用 Swift 语法使用这些Objective-C代码,就像使用系统自带的类一样。
- let myCell = XYZCustomCell()
- myCell.subtitle = "A custom cell"
它以 product 模块名加 -Swift.h 来命名。关于 product 的模块名,详见 Naming Your
Product Module。
假设你在 Swift 代码中使用你自己的Objective-C类型,确保先将相应的 Objc 头文件导入到你的 Swift 代码中,然后才将 Swift 自己主动生成的头文件导入到 Objc .m 源文件里来訪问 Swift 代码。
- #import “ProductModuleName-Swift.h”
关于在 Objc 代码中使用 Swift 代码。详见 Using Swift from Objective-C。
- #import <XYZ/XYZCustomCell.h>
- #import <XYZ/XYZCustomView.h>
- #import <XYZ/XYZCustomViewController.h>
- let myCell = XYZCustomCell()
- myCell.subtitle = "A custom cell"
- #import <ProductName/ProductModuleName-Swift.h>
import 外部框架的流程都是一样的,无论这个框架是用一种语言写的,还是包括两种语言。
当你导入外部框架时,确保 Build Setting > Pakaging > Defines Module 设置为 Yes 。
- import FrameworkName
- @import FrameworkName;
- MySwiftClass *swiftObject = [[MySwiftClass alloc] init];
- [swiftObject swiftMethod];
这个 attribute 告诉编译器这个 Swift 代码能够从 Objc 代码中訪问。假设你的 Swift 类是 Objc 类的子类,编译器会自己主动为你加入 @objc attribute 。
详见 Swift Type Compatibility。
不包含一下这些 Swift 独有的特性:
- // MyObjcClass.h
- @class MySwiftClass;
- @interface MyObjcClass : NSObject
- - (MySwiftClass *)returnSwiftObject;
- /* ... */
- @end
Using Swift with Cocoa and Objective-C--在同个project中使用Swift和在同个project中的更多相关文章
- iOS开发——技术精华Swift篇&Swift 2.0和Objective-C2.0混编之第三方框架的使用
swift 语言是苹果公司在2014年的WWDC大会上发布的全新的编程语言.Swift语言继承了C语言以及Objective-C的特性,且克服了C语言的兼容性问题.Swift语言采用安全编程模式,且引 ...
- Using Swift with Cocoa and Objective-C(Swift 2.0版):开始--基础设置-备
这是一个正在研发的API或技术的概要文件,苹果公司提供这些信息主要是为了帮助你通过苹果产品使用这些技术或者编程接口而做好计划,该信息有可能会在未来发生改变,本文当中提到的软件应该以最终发布的操作系统测 ...
- Using Swift with Cocoa and Objective-C下载
<Using Swift with Cocoa and Objective-C Building App > 下载地址 http://download.csdn.net/detail/sw ...
- [Swift A] - Using Swift with Cocoa and Objective-C--Mix and Match
Swift与Objective-C的兼容能力允许你在同一个工程中同时使用两种语言.你可以用这种叫做“mix and match”的特性来开发基于混合语言的应用.使用Swfit的最新特性--“mix a ...
- 如何在C语言中调用Swift函数
在Apple官方的<Using Swift with Cocoa and Objectgive-C>一书中详细地介绍了如何在Objective-C中使用Swift的类以及如何在Swift中 ...
- 如何在 iOS 8 中使用 Swift 实现本地通知(上)
当你的应用在后台运行时,可以简单地使用本地通知把信息呈现给用户.它可以允许你显示 提醒.播放提示音和数字角标(badge).本地通知可以被以下的事件触发:计划好的时间点或者用户进入和离开某个地理区域. ...
- 使用Pods中使用Swift和Objective-C混编-编译不通过的原因
iOS开发#使用Pods中使用Swift和Objective-C混编-编译不通过的原因-ld: symbol(s) not found for architecture arm64 问题基本描述 在P ...
- OC项目中使用Swift
1.在OC工程中新建 Swift 文件,会提示的是否创建一个桥接文件,创建不创建都无所谓,这个桥接文件主要是用来包含OC头文件的,主要用于Swift中使用OC 2.在Person.sw ...
- 在oc代码中使用swift第三方框架
swift现在使用越来越多了,一些主流的框架或者效果比较好的demo都陆陆续续使用swift写了.所以,要学会如何在oc的项目中调用swift. 这里主要借助一个桥梁文件,这个桥梁文件一般在你导入sw ...
随机推荐
- mysql之mysqldump、mysqlimport
一.引言 前一段在做一个csv的导入工具,最麻烦的部分就是对csv文件的解析,最后,老大提醒说是不是考虑的过于麻烦了,由于当时考虑到mysql是允许指定导出的csv文件的格式的,所以考虑到想要兼容这种 ...
- ERROR C2676
直接上代码: nl.h #ifndef NL_H #define NL_H #include <iosfwd> namespace ZJ { /** Insert a newline ch ...
- Webdings 图形字体
如果想在网页上插入图形,最简单的方式就是使用图形字体.Webdings 是一种微软开发的图形字体,在IE浏览器上可以使用它. 什么是Webdings Webdings 是一个TrueType的ding ...
- ajax-C#
$(document).ready(function(){ $("#month").change(function () { var yearSelect = $("#y ...
- Petrozavodsk Summer-2015. Ivan Smirnov Contest 1 B Bloom
http://opentrains.snarknews.info/~ejudge/team.cgi?contest_id=001463 题目大意:给出$n$个$x$,$m$个$y$,问有多少个hash ...
- bash脚本IFS=',' read的意思
IFS is the Input Field Separator, which means the string read will be split based on the characters ...
- Java深入理解文章(转载)
引用自:http://droidyue.com/ninki/ JVM运行时的数据区 http://droidyue.com/blog/2014/12/21/java-runtime-data-area ...
- ubuntu安装jdk详细教程
ubuntu14 安装jdk1.7 具体步骤参详了如下链接: http://www.cnblogs.com/plinx/archive/2013/06/01/3113106.html 1.到 Sun ...
- 蓝桥杯 第三届C/C++预赛真题(2) 古堡算式(数学题)
福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式: ABCDE * ? = EDCBA 他对华生说:“ABCDE应该代表不同的数字,问号也代表某个数字!” 华生:“我猜也是!” 于是,两人沉默了好久, ...
- asp.net 读取配置文件方法
方法1: System.Collections.Specialized.NameValueCollection nvc = (System.Collections.Specialized.NameVa ...