作家
登录

优雅的开发Swift和Objective-C混编的Framework

作者: 来源: 2017-04-08 18:05:27 阅读 我要评论

然后,为了在OC中调用Swift的办法,我们须要导入头文件,这时刻,OCSource.m文件内容如下

  1. #import "OCSource.h" 
  2.  
  3. #import <MixFramework/MixFramework-Swift.h> 
  4.  
  5.   
  6.  
  7. @implementation OCSource 
  8.  
  9.   
  10.  
  11. - (void)functionFromOC{ 
  12.  
  13.     NSLog(@"%@",[ClassForOC textForOC]); 
  14.  
  15.  
  16. @end  

然后,build,发明成功了,很高兴。

外部调用

在ViewController.swift中,我们调用Framework中的内容。

  1. import MixFramework 
  2.  
  3. class ViewController: UIViewController { 
  4.  
  5.     var t = SwiftIt() 
  6.  
  7.     override func viewDidLoad() { 
  8.  
  9.         super.viewDidLoad() 
  10.  
  11.         t.encapsulate() 
  12.  
  13.         // Do any additional setup after loading the view, typically from a nib. 
  14.  
  15.     } 
  16.  
  17.   
  18.  
  19.     override func didReceiveMemoryWarning() { 
  20.  
  21.         super.didReceiveMemoryWarning() 
  22.  
  23.         // Dispose of any resources that can be recreated. 
  24.  
  25.     } 
  26.  
  27.  

然后运行,发明控制台打印出

  1. 2017-03-02 16:08:24.000 HostApplication[19524:167669] textForOC 

总结

嗯,framework打包成功了。

问题

如不雅你之前没有效Swift和Objective C混淆开辟,建议看看这篇文档:

  • Swift and Objective-C in the Same Project

平日,我们欲望裸露给外部的接口是纯Swift,而OC文件的具体接口应当隐蔽,这就是我标题中的优雅两个字的含义。

如不雅你好奇,你会发明,在ViewController.swift中你可以这么调用

  1. var s = OCSource() 

也就是说,OC的内容也裸露出来了,这破坏了Framework的封装特点。

  1. import Foundation 
  2.  
  3. import MixFramework.OCSource 
  4.  
  5. import MixFramework 
  6.  
  7. import MixFramework.Swift 
  8.  
  9. import SwiftOnoneSupport 
  10.  
  11. import UIKit 
  12.  
  13.   

      推荐阅读

      7个故事告诉你 当人工智能遇上医生会发生什么

    2016年11月的一个晚上,美国纽约布朗克斯区(Bronx)的一名54岁女子因为严重头痛被送至哥伦比亚大年夜学(Columbia University)医疗中间的急诊室。她对急诊室大夫说本身目力变得模糊,左手认>>>详细阅读


    本文标题:优雅的开发Swift和Objective-C混编的Framework

    地址:http://www.17bianji.com/lsqh/34658.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)