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 ...
随机推荐
- python学习之多行字符串
多行字符串的写法 ("..." "..." "...") 例子 >>> err = ("a" ... ...
- url参数
两个参数情况: String url="http://59.78.93.208:9097/Order?id="+id+"&value="+value; ...
- HDU 1075 What Are You Talking About (Trie)
What Are You Talking About Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 102400/204800 K ...
- ubuntu设置静态ip地址
每次设置都忘了之前怎么设置的,所以今天记录下来. 1. 找到文件并作如下修改: sudo vim /etc/network/interfaces 修改如下部分: auto eth0iface eth0 ...
- Linux制作wifi热点/无线路由
参考: http://blog.csdn.net/u011641885/article/details/495121991.工具/原料 有无线网卡(usb接口的RT3070无线网卡).有线网卡的 ...
- Java动态代理机制小结
因为最近学习hadoop中用到了动态代理的相关知识,之前AOP编程也碰到过,所以在这里特地总结一下. 在java的动态代理机制中,有两个重要的类或接口,一个是 InvocationHandler(In ...
- <! - - ... - -> 注解
<A HREF TARGET> 指定超连结的分割视窗 <A HREF=#锚的名称> 指定锚名称的超连结 <A HREF> 指定超连结 <A NAME=锚的名称 ...
- 在Intellij IDEA下用X-debug调试PHP
用Intellij IDEA使用X-debug来调试PHP,主要需要配置的部分有三个地方,分别为php.ini的配置,IDEA的配置和浏览器的配置,主要如下: php.ini(wamp修改的是phpF ...
- 【Raspberry pi】GPIO注意事项
1.GPIO编码的方法 第三列是树莓派板子上的自然编号(左边引脚为1-15,右边引脚为2-26),RPi.GPIO.setmode(GPIO.BOARD)采用这列编号 树莓派主芯片提供商Broadco ...
- 【python】pyqt练习
import sys from PyQt4.QtCore import * from PyQt4.QtGui import * import ui_price class PriceDlg(QDial ...