iOS库的种类

一、什么是库?

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

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

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

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

三、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暴露出来就可以了。

时间: 2024-07-31 16:07:40

iOS库的种类的相关文章

教你写能被舒服舒服又舒服地调用的IOS库

目录 前言 脑洞开一开 分析 整容 结语 前言 2014年过的那么快,过年又那么块,2015年又是飞快地节奏,真尼玛感觉上帝是不是无聊使用了变速外挂开启了加速模式~到现在博主都无法接受已经上班的事实……在地铁脸被挤在玻璃上的时候只能用眼神写满傻X射这个世界一脸!!原谅博主那么鸡粪~因为哥最近生病了,不嗨心~~,我想来去想不明白,博主每周健身4天,胸肌压女友.拳头比沙煲.吃喝健又康.体硬似野马,怎么会生病呢?我苦思多日,终于有一天早上起床看了镜子半个小时后我才顿悟,我靠~原来长得帅真的是错!上帝在

iOS库--.a与.framework

一.什么是库? 库是共享程序代码的方式,一般分为静态库和动态库. 二.静态库与动态库的区别? 静态库:链接时完整地拷贝至可执行文件中,被多次使用就有多份冗余拷贝. 动态库:链接时不复制,程序运行时由系统动态加载到内存,供程序调用,系统只加载一次,多个程序共用,节省内存. 三.iOS里静态库形式? .a和.framework 四.iOS里动态库形式? .dylib和.framework 五.framework为什么既是静态库又是动态库? 系统的.framework是动态库,我们自己建立的.fram

iOS 库文件制作

一 制作使用静态库 IOS静态库a文件制作流程 字数345 阅读5120 评论7 喜欢23 1.新建Cocoa Touch Static Library工程 新建工程 2.Xcode的参数设置 "Build Active Architecture Only" 设置为"NO" "IOS Deployment Target" 设置为 "IOS 7.0" ,表示支持IOS7.0以上系统版本的编译 Build Active Archi

开发IOS库之下拉刷新-WCPullRefreshControl

原创Blog,转载请注明出处 blog.csdn.net/hello_hwc 我的Github https://github.com/wenchenhuang/WCPullRefreshControl 前言: 写IOS代码有段时间了,是时候写几个Github的库了,即锻炼了自己,又能够帮助需要的人. 这个库是一个下拉刷新库,自己用了10个小时左右的时间开发的,做了屏幕适配,旋转适配,自己设计了一些动画,API设计改了3次.最后,第一个版本提交到Github了. 地址 几种效果图 特点: 适配各种

我的IOS库-任意颜色渐变的圆环

原创Blog,转载请注明出处 blog.csdn.net/hello_hwc 前言:想要丰富之前写的一个库,用到了颜色渐变,于是就写了这个简单的库. 效果 Github地址 https://github.com/wenchenhuang/WCGradientCircleLayer 于是,基于这个新写的库,对之前写的下拉刷新库进行了更新 支持了view载入自动刷新,和渐变Item Github地址 https://github.com/wenchenhuang/WCPullRefreshContr

IOS库引用产生的bug - Apple LLVM 5.1 - Language

objective-c的优点是兼容c++代码,所以我们在项目中可以很方便的把c++实现的库拿过来使用,不过使用时需要设置一些地方,因为没有设置好会带来很奇怪的问题 下面是在使用这些库时编译器报的错,可以看到报的错很让人摸不着头脑 刚开始一直以为是target里header search path没有设置正确,所以在build settings里折腾了很久. 后来请教了很多大师,才知道这是库代码在引用c++的基础类型时没有引用到导致的,我们需要把相应的引用了c++库的类设置一下.主要是设置这个类的

我的iOS库-侧拉菜单(模糊效果)

前言:这个小的开源库面前只是做了些基本的功能,暂时不支持设备旋转,另外模糊的类型还会调整.因为在初期,所以如果某些初学者的童鞋想要看看,我想还是有些借鉴意义的.(虽然我也是初学者). 项目地址 https://github.com/wenchenhuang/WCBlurSideMenu 静态截图 动图-按键触发 动图-边缘手势触发 目前: 支持代码和storyboard两种使用方式 不支持旋转 默认setting的大小为为屏幕的一半 支持不同尺寸的设备 原理 WCBlurView使用WWDC 2

IOS开发第三方开源库

IOSios开发第三方开源库 1. AFNetworking 在众多iOS开源项目中,AFNetworking可以称得上是最受开发者欢迎的库项目.AFNetworking是一个轻量级的iOS.Mac OS X网络通信类库,现在是GitHub上第三大Objective-C库.它建立在NSURLConnection.NSOperation等类库的基础上,让很多网络通信功能的实现变得十分简单,因此,许多iOS应用开发都会使用到它. 支持HTTP请求和基于REST的网络服务(包括GET.POST.PUT

iOS第三方库

热门iOS第三方库:看完,还敢自称”精通iOS开发”吗? 综合github上各个项目的关注度与具体使用情况,涵盖功能,UI,数据库,自动化测试,编程工具等类型,看完,还敢自称”精通iOS开发”吗? https://github.com/syedhali/EZAudio 基于核心音频,有助于进行实时,低延迟音频处理和可视化的iOS和OSX音频可视化框架. https://github.com/bang590/JSPatch JSPatch使用Objective-C运行时桥接Objective-C和