iOS学习之库
一、什么是库
库是程序代码的集合,是共享程序代码的一种方式。
二、库的分类
根据源代码的公开情况,库可以分为2种类型。
1.开源库
公开源代码,能看到具体实现。
比如,SDWebImage、AFNetworking
2.闭源库
不公开源代码,是经过编译后的二进制文件,看不见具体实现。
三、静态库和动态库
1.动态库和静态库的存在形式
静态库:.a和.framework
动态库:.dylib和.framework
2.使用区别
静态库:链接时,静态库会被完整地复制到可执行文件中,被多次使用就有多份冗余拷贝。如下图:
动态库:链接时不复制,程序运行时由系统动态加载到内存,供程序调用,系统只加载一次,多个程序共用,节省内存。如下图:
3.查看静态库支持的架构(命令)
lipo -info XXX.a
4.架构列表
i386:iPhone模拟器 3GS—>iPhone5
x86_64:iPhone模拟器 5s 6plus
armv7:iPhone 3GS 4s
armv7s:iPhone 5 5c
arm64:iPhone 5s 6plus
5.合并静态库(同时支持不同的架构)
/*将XXX1.a和XXX2.a合并生成XXX3.a (生成的XXX3.a在当前路径下)*/
lipo –create XXX1.a XXX2.a –output XXX3.a
6. 静态库文件的版本(4种)
1)真机-Debug版本
2)真机-Release版本
3)模拟器-Debug版本
4)模拟器-Release版本
四、调试版本(Debug版本) VS 发布版本(Release版本)
- 调试版本会包含完整的符号信息,以方便调试
- 调试版本不会对代码进行优化
- 发布版本不会包含完整的符号信息
- 发布版本的执行代码是进行过优化的
- 发布版本的大小会比调试版本的略小
- 在执行速度方面,调试版本会更快些,但不意味着会有显著的提升
五、静态库编译
选择编译的静态库带头文件。
操作:(.a)
target build phases Copy files +
操作:(.framework)
target build phases headers public/private/project
六、framework
因为framework文件既可能是静态库,也可能是动态库。
使用时,动态库应该添加库。(target—>general embedded binarles)(自己制作framework时,默认制作成动态库)
framework制作成静态库:
target build settings linking match-o type static library
iOS学习之库的更多相关文章
- IOS学习:常用第三方库(GDataXMLNode:xml解析库)
IOS学习:常用第三方库(GDataXMLNode:xml解析库) 解析 XML 通常有两种方式,DOM 和 SAX: DOM解析XML时,读入整个XML文档并构建一个驻留内存的树结构(节点树),通过 ...
- iOS学习笔记16-数据库SQLite
一.数据库 在项目开发中,通常都需要对数据进行离线缓存的处理,如新闻数据的离线缓存等.离线缓存一般都是把数据保存到项目的沙盒中.有以下几种方式: 归档:NSKeyedArchiver 偏好设置:NSU ...
- JHChart 1.1.0 iOS图表工具库中文ReadMe
JHChart(最新版本1.1.0) 好吧,的确当前的github上已经存有不少的iOS图表工具库,然而,当公司的项目需要图表时,几乎没有哪个第三方能够完全满足我的项目需求.无奈之下,本人不得不花费一 ...
- 【原】iOS学习47之第三方-FMDB
将 CocoaPods 安装后,按照 CocoaPods 的使用说明就可以将 FMDB 第三方集成到工程中,具体请看博客iOS学习46之第三方CocoaPods的安装和使用(通用方法) 1. FMDB ...
- iOS学习路线图
一.iOS学习路线图 二.iOS学习路线图--视频篇 阶 段 学完后目标 知识点 配套学习资源(笔记+源码+PPT) 密码 基础阶段 学习周期:24天 学习后目标: ...
- iOS 学习资源
这份学习资料是为 iOS 初学者所准备的, 旨在帮助 iOS 初学者们快速找到适合自己的学习资料, 节省他们搜索资料的时间, 使他们更好的规划好自己的 iOS 学习路线, 更快的入门, 更准确的定位的 ...
- iOS学习资源个人整理
1208更新: http://www.tuyiyi.com 图翼网 https://github.com/Alamofire/Al ...
- 【原】iOS学习之第三方-AFNetworking1.3.0
将 CocoaPods 安装后,按照 CocoaPods 的使用说明就可以将 AFNetworking 第三方集成到工程中,具体请看上篇博客iOS学习46之第三方CocoaPods的安装和使用(通用方 ...
- iOS学习笔记-精华整理
iOS学习笔记总结整理 一.内存管理情况 1- autorelease,当用户的代码在持续运行时,自动释放池是不会被销毁的,这段时间内用户可以安全地使用自动释放的对象.当用户的代码运行告一段 落,开始 ...
随机推荐
- html 标签 图片
<img src="e:/image/a.png"/> 在html中,图片是一个字符. <img src=" e:/image/a.png" ...
- wp8 各种启动器
PhoneCallTask 打电话 需要 ID_CAP_PHONEDIALER Windows Phone 8, Windows Phone OS 7.1
- Alluxio部署(local模式)
下载(pre-build for Hadoop 2.7) http://www.alluxio.org/download` 解压 tar -xvf alluxio-1.3.0-hadoop2.7-bi ...
- UML结构体系简介
一.UML的结构 UML有3种基本的构造块,分别是事物(元素).关系和图.事物是UML中重要的组成部分.关系把事物紧密联系在一起.图是很多有相互相关的事物的组. 二.UML的事物 UML中的事物也称为 ...
- Oracle----oracle小知识总结
1,表列的五种约束 not null, unique,primary key, foreign key, check 2,权限分配 grant 权限 on 表 to 用户 3,表和视图的区别 视图是一 ...
- C语言 结构体(嵌套结构体--结构体数组)
//结构体--嵌套结构体和结构体数组 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> ...
- java 读取world的图片 并把图片路径存入数据库
package World; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundExcep ...
- 我的第八个java程序--读取word内容
package World; import java.io.FileNotFoundException; import java.io.IOException; import org.apache.p ...
- Java凝视分类
Java凝视分类 1.单行凝视 //打印结果 System.out.println("结果是:"+result); 2.多行凝视 /** * @autho ...
- Mysql中查看每个IP的连接数
) as ip , count(*) from information_schema.processlist group by ip;