一、什么是库?

库是共享程序代码的方式,一般分为静态库和动态库。

二、静态库与动态库的区别?

静态库:链接时完整地拷贝至可执行文件中,被多次使用就有多份冗余拷贝。

动态库:链接时不复制,程序运行时由系统动态加载到内存,供程序调用,系统只加载一次,多个程序共用,节省内存。

三、iOS里静态库形式?

.a和.framework

四、iOS里动态库形式?

.dylib和.framework

五、framework为什么既是静态库又是动态库?

系统的.framework是动态库,我们自己建立的.framework是静态库。

六、a与.framework有什么区别?

.a是一个纯二进制文件,.framework中除了有二进制文件之外还有资源文件。

.a文件不能直接使用,至少要有.h文件配合,.framework文件可以直接使用。

.a + .h + sourceFile = .framework。

建议用.framework.

七、为什么要使用静态库?

方便共享代码,便于合理使用。

实现iOS程序的模块化。可以把固定的业务模块化成静态库。

和别人分享你的代码库,但不想让别人看到你代码的实现。

开发第三方sdk的需要。

八、制作静态库时的几点注意:

1 注意理解:无论是.a静态库还.framework静态库,我们需要的都是二进制文件+.h+其它资源文件的形式,不同的是,.a本身就是二进制文件,需要我们自己配上.h和其它文件才能使用,而.framework本身已经包含了.h和其它文件,可以直接使用。

2 图片资源的处理:两种静态库,一般都是把图片文件单独的放在一个.bundle文件中,一般.bundle的名字和.a或.framework的名字相同。.bundle文件很好弄,新建一个文件夹,把它改名为.bundle就可以了,右键,显示包内容可以向其中添加图片资源。

3 category是我们实际开发项目中经常用到的,把category打成静态库是没有问题的,但是在用这个静态库的工程中,调用category中的方法时会有找不到该方法的运行时错误(selector not recognized),解决办法是:在使用静态库的工程中配置other linker flags的值为-ObjC。

4 如果一个静态库很复杂,需要暴露的.h比较多的话,就可以在静态库的内部创建一个.h文件(一般这个.h文件的名字和静态库的名字相同),然后把所有需要暴露出来的.h文件都集中放在这个.h文件中,而那些原本需要暴露的.h都不需要再暴露了,只需要把.h暴露出来就可以了。

iOS库--.a与.framework相关推荐

  1. iOS架构-静态库.a 和.framework的区别(0)

    原文网址:https://my.oschina.net/kaqijiang/blog/649632 一.什么是库? 库是共享程序代码的方式. 库从本质上来说是一种可执行代码的二进制格式,可以被载入内存 ...

  2. iOS架构-制作静态库.a和.framework 的相互依赖(10)

    有一句名言:当你知道的东西越多,你才会发现你不懂的东西越多. 现在我有点体会到了,当我去了解静态库,我发现我要学习脚本:当我接触编译C/C++库,我发现我要去了解交叉编译:当我想了解组件化架构,我发现 ...

  3. [iOS] 建立与使用Framework

    [iOS] 建立与使用Framework 前言 使用XCode开发iOS项目时,开发人员可以将可重用的程序代码,封装为Library或是Framework来提供其他开发人员使用.这两种封装方式在使用的 ...

  4. extjs chart无法在panel中显示_HighChart教程:Swift中的Highcharts iOS库

    以下文章总结了如何在Swift中使用Highcharts iOS库. 我们将对2016/2017赛季四支顶级冠军联赛球队的统计数据进行可视化. A.如何创建Highcharts项目 入门 在Xcode ...

  5. 教你写能被舒服舒服又舒服地调用的iOS库

    目录 前言 脑洞开一开 分析 整容 结语 前言 2014年过的那么快,过年又那么块,2015年又是飞快地节奏,真尼玛感觉上帝是不是无聊使用了变速外挂开启了加速模式~到现在博主都无法接受已经上班的事实- ...

  6. 报错 Building for iOS, but the embedded framework ‘xxx.framework‘ was built for iOS + iOS Simulator

    1.问题描述 我在Xcode13.4上面运行一个集成了.a文件的工程之后报错,上一周还是好好的,突然就不行了,不知道咋回事 报错信息如下: Building for iOS, but the embe ...

  7. iOS 静态库制作,Framework制作,Bundle制作

    在上一篇教程(中译版)中,你学到了怎么样创建一个可复用的圆形旋钮控件.然而你可能不清楚怎样让其他开发者更方便地去复用它. 如果你想将你开发的控件与别人分享,一种方法是直接提供源代码文件.然而,这种方法 ...

  8. 【IOS学习】ios库之.framework与.a文件

    - 库:是共享程序代码的方式 库的种类:静态库与动态库 1.静态库:.a文件与.framework文件 2.动态库:.dylib文件与.framework文件 注:.framework文件为系统创建则 ...

  9. iOS快速开发框架--Bee Framework

    Bee Framework是一款iOS快速开发框架,允许开发者使用Objective-C和XML/CSS来进行iPhone和iPad开发,由Gavin Kwoe和QFish开发并维护. 其早期原型曾经 ...

最新文章

  1. Netty 简单服务器 (三)
  2. jdk8中java.util.concurrent包分析
  3. Nuget打包类库及引用
  4. 数据结构-Hash总结(一):理论学习篇
  5. TensorFlow windows之Tensorboard使用
  6. springBoot笔记(一) @SpringBootApplication的神奇魔力
  7. 国家建筑标准设计图集
  8. python爬虫网易云音乐评论最多的歌_网易云音乐歌曲评论爬虫
  9. 影院售票系统 php源码,影院售票系统
  10. 汇智创科机器人,【汇智创科机器人】这个周六,和孩子一起“动手不动口”,比比看谁最棒!...
  11. windows 下 c++ 二维码生成库
  12. 深入浅出 CSS 动画
  13. 从内容打到社交,头腾大战矛头又指向了游戏
  14. 全景图矫正 matlab,全景图的后期水平矫正的三种方法
  15. FPGA_demo2:按键测试
  16. a 标签发送put请求_HTTP PUT请求该如何传输请求参数呢?
  17. 手机浏览器呼出QQ聊天窗口
  18. 去哪儿网2014笔试算法题汇总
  19. java future 异常处理_Java异常处理总结
  20. 全球及中国导电聚合物(CP)型电子鼻发展前景与投资战略分析报告2022~2028年

热门文章

  1. JAVA子类是球父类是圆_java的父类和子类,这是矛盾...
  2. 计算机关机又自动重启,为什么w7电脑关机后自动重启_w7电脑关机后自动重启怎么解决...
  3. python编写人机交互界面_Python编写个天气查询应用(可视化界面)
  4. 2019计算机科学与技术全日制调济,2019年华侨大学计算机科学与技术学院全日制学术型研究生调剂信息(第三批)...
  5. 电脑销售渠道_双十一遇上英雄联盟S10,苏宁游戏装备销售增长258%
  6. python编程与下位机通讯_ros 与下位机通信
  7. 用shell编写一个三角形图案
  8. 机器学习(监督学习) 项目流程模板
  9. phpcms9-6-0 一键getshell工具
  10. VS2015中快捷注释代码块