iOS中生成并导入基于Swift编程语言的Framework
从iOS 8.0开始就引入了framework打包方式以及Swift编程语言。我们可以主要利用Swift编程语言将自己的代码打包成framework。不过当前Xcode 7.x在自动导入framework包的时候不太智能,因此需要做一些善后处理。
首先,在生成framework时,要暴露给外部的结构体、类、枚举、函数等都需要用public关键字来修饰,否则外部是访问不到这些类型以及函数的。此外,在结构体和类中,不能缺省初始化方法,必须用public暴露给外部,否则也一样无法被访问到。
其次,当我们生成好framework库之后,先打开framework的包目录,可以先用lipo命令将x86与arm不同处理器架构生成的二进制文件(exec)给整合一下,放到设备生成的framwork包内。然后将模拟器framework包中的Modules目录下的.swiftmodule目录中的所有模块文件拷贝到设备framework包中的相应目录内。这样,将处理完的设备framework目录包放到实际工程下就能通过编译和连接了。
最后,当我们要执行模拟器运行或真机运行前,将刚才处理完的framework包复制黏贴到products中最后生成的.app包的Framework目录下,这个需要手工拷贝完成,否则程序运行时会报image not found的错误~
iOS中生成并导入基于Swift编程语言的Framework的更多相关文章
- 【swift】ios中生成二维码
ios开发中可以自己代码生成二维码,需要使用到一个框架 CoreImage CoreImage框架可以做滤镜,Gif动图,二维码等 先看效果图 下面直接贴上代码(OC也是下面一样的流程) func c ...
- iOS chart 图表完美解决方案 基于swift
如果打算在app中使用图标功能,这个框架基本能够满足90%的需求 下边是作者的框架的下载地址 ,基于swift2.0 https://github.com/danielgindi/ios-charts ...
- ios 中生成二维码和相册中识别二维码
iOS 使用CIDetector扫描相册二维码.原生扫描 原生扫描 iOS7之后,AVFoundation让我们终于可以使用原生扫描进行扫码了(二维码与条码皆可)AVFoundation可以让我们从设 ...
- ios 中生成随机数
ios 有如下三种随机数方法: 1. srand((unsigned)time(0)); //不加这句每次产生的随机数不变 int i = rand() % 5; 2. s ...
- iOS中生成随机的UUID
+ (NSString *)uuidString { CFUUIDRef uuid_ref = CFUUIDCreate(NULL); CFStringRef uuid_string_ref= CFU ...
- Swift编程语言资料合集
在本周二凌晨召开的苹果年度开发者大会WWDC上,苹果公司推出了全新的编程语言Swift.Swift 基于C和Objective-C,是供iOS和OS X应用编程的全新语言,更加高效.现代.安全,可以提 ...
- 400多个开源项目以及43个优秀的Swift开源项目-Swift编程语言资料大合集
Swift 基于C和Objective-C,是供iOS和OS X应用编程的全新语言,更加高效.现代.安全,可以提升应用性能,同时降低开发难度. Swift仍然处于beta测试的阶段,会在iOS 8发布 ...
- Swift编程语言的相关资料
苹果官方Swift文档<The Swift Programming Language> 苹果开发人员Swift文档及介绍 网友整理的Swift中文文档<Apple Swift编程语言 ...
- Swift编程语言中如何实现自定义类型的for-in循环(基于Swift 2.2)
我们在Swift编程语言中常常会用到for-in循环(在编程语言术语中又被称为for-each).此外,从Swift 2.2版本起,for循环将只支持for-in形式,而不支持for i = 0; i ...
随机推荐
- [ASE][Daily Scrum]11.24
今天开会总结了一下第一周的进度,讨论了无限地图的访存方法,做了简单的人员调整, Client的包接收分析与服务器通信这块基本上完成了, 之后Jiafan Zhu会开始和Junbei以及Songtao一 ...
- linux系统基础网络配置
1.修改主机名 临时方法: 退出当前shell重新登录即可生效.此法只能临时修改生效.重启系统后失效. 提示:很多人使用hostname主机名来修改,其实这个只是作为暂时的.重启后将恢复到配置前的主机 ...
- 使用本地服务器组来管理局域网或公网上的SQLSERVER
使用本地服务器组来管理局域网或公网上的SQLSERVER 测试的两台机器 Windows7 64位 SQLSERVER2005 SP5 Windows7 64位 SQLSERVER2012 S ...
- C#函数式编程之部分应用
何谓函数式编程 相信大家在实际的开发中,很多情况下完成一个功能都需要借助多个类,那么我们这里的基本单元就是类.而函数式编程则更加细化,致使我们解决一个功能的基本单元是函数,而不是类,每个功能都是由多个 ...
- JsRender实用教程(tag else使用、循环嵌套访问父级数据)
前言 JsRender是一款基于jQuery的JavaScript模版引擎,它具有如下特点: · 简单直观 · 功能强大 · 可扩展的 · 快如闪电 这些特性看起来很厉害,但几乎每个模版引擎, ...
- Spring AOP(配置文件方式)
spring配置文件: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="h ...
- Ubuntu SVN客户端安装
查看系统版本: uname -a (Linux查看版本当前操作系统内核信息) cat /proc/version (Linux查看当前操作系统版本信息) 1.首先需要安装Ubuntu SVN.Ubun ...
- php闭包函数简析
闭包函数(closures)也叫匿名函数,使用js的童鞋应该比较熟悉.PHP5.3开始引入了闭包的特性. 声明一个匿名函数是: $func = function() { }; //带结束符 匿名函数因 ...
- Bootstrap中水平排列的表单form-inline
<html> <head> <title>初识Bootstrap</title> <meta charset="utf-8"& ...
- php读取大文件的方法
1.使用file 函数直接读取 $starttime = microtime_float(); ini_set('memory_limit','-1'); $file = "testfile ...