iOS开发-功能篇-静态库

1.概述:apple的开发,主要提供了两种库:一种是静态库,系统自带的.framework和自己创建的.a文件,主要在编译时供调用;还有一种是动态库,主要以.dylib结尾(或直接为.o文件),在运行时创建成.o文件链接到工程文件中供调用。苹果目前只提供静态库的封装为主,接下来就介绍.a静态库的封装。

2.功能:主要有2大用途:1).功能模块化,便于重用;2).保密源文件内部实现,保护源文件隐私。

3.步骤:创建一个新的project工程文件->选择cocoa touch static library->创建供他人调用的.h和.m文件->以.h和.a文件来配合,用.h文件中提供的接口函数,需要供他人调用的函数接口需要暴露在.h文件中->因为框架是静态库,所以最后是编译生成.a文件->在products中找到文件位置->在需要引用的工程中添加.a文件和相应的.h头文件(注意link binary with library链接进去)。注:其实.a文件就是.m文件的集合,根据打包出来的.h文件来调用里面相应的.m文件。

4.示例:1.2.3.456

7.8.9.10

5.问题:1).Product->scheme中注意release和debug版本。

2).若编译后.a文件是红色的说明没有成功,可以切换一下模拟器和device工程的目录生成黑色.a文件。

3).注意,模拟器因为是在mac下,cpu架构是x86的和device的iPhone等设备下arm的架构不同,我们可以对生成的文件进行查看lipo -info xxx.a ,若想同时使用便使用lipo -create .../模拟器/xxx.a .../设备/xxx.a -output .../输出位置/xxx.a。

时间: 2024-10-12 08:55:12

iOS开发-功能篇-静态库的相关文章

iOS开发拓展篇—静态库

iOS开发拓展篇—静态库 一.简单介绍 1.什么是库? 库是程序代码的集合,是共享程序代码的一种方式 2.库的分类 根据源代码的公开情况,库可以分为2种类型 (1)开源库 公开源代码,能看到具体实现 比如SDWebImage.AFNetworking (2)闭源库 不公开源代码,是经过编译后的二进制文件,看不到具体实现 主要分为:静态库.动态库 二.静态库和动态库 1.静态库和动态库的存在形式 静态库:.a 和 .framework 动态库:.dylib 和 .framework 2.静态库和动

iOS开发,如何打包静态库.a文件

1.需求 我们在开发iOS的工作中可能会自己开发一些.a静态库或者打包一下别人的第三方类库包装成自己的.a文件.有时候我们引入一些C++编译的第三方文件时可能会出现编译的错误,但是我们如果打包成.a静态库时就很少会出现OC与C++混编的错误,原因很简单.a静态库文件是编译好的二进制文件,二进制文件与二进制文件互相混编当然没有什么问题.好那么接下来我们开始学习打包吧! 2.实例 接下来我们就以打包IOS开发中常用的网络请求库AFNetworking为实例. 1>我们需要准备好需要打包的AFNetw

iOS封装功能生成静态库.Framework

在实现iOS模块化开发的过程中,可以把固定的业务模块生静态库. 本文将基于Xcode9.2创建一个简单的工程,教大家如何制作一个自己的framework,目的就是简单易学的制作framework.这种方法可以使得你的代码易分享,在多个工程中复用,并且可以隐藏实现细节,控制公开的头文件. 1. 打开Xcode,新建工程.不要选择"Application",选择"Framework & Library".选择第一个,然后Next. 2. 创建相关的功能类 我在这

ios开发中创建静态库的方法介绍

在进行iOS项目开发时,为了减少项目的编译时间,通常情况下会把项目中的私密内容打包成静态库,或者是把ios项目中变动较少一部分打包成静态库以便提高编译效率,很多iOS初学者对静态库与动态库的区别及创建使用,下面就一起来学习下: (一)iOS静态库.动态库与Framework静态库与动态库的区别: (1)什么是库? 库(Library)直白一点说就是一段编译好的二进制代码,加上头文件就可以供别人使用;(例如: iOS中Objective-C编译下的.h和.m文件,打包静态库后会变为.h和.a文件)

【iOS开发-115】静态库的制作以及第三方框架iOS Universal Framework,DEBUG和RELEASE

(1)概念介绍 --我们平时在项目中用的最多的就是开源的第三方库,这种库是开源的,我们不仅能用,还能查看源代码甚至可以修改源代码. --与开源库对应的就是闭源,闭源库分为动态库和静态库.动态库就是.dylib或者.framework结尾的文件.就是苹果官方提供给我们用的那些库.开发者不能在项目中使用自制的动态库,否则无法上传到APPStore. --所以,对于闭源库,我们主要讨论的是静态库.静态库的样子就是用户拿到的文件有很多头文件.h+资源包+编译过的一个二进制文件.a(.framework)

iOS开发-功能篇-国际化|NSUserDefaults

/*=========================================软件国际化================================================*/ 1.简介: 软件国际化主要是在软件中添加多种语言,以实现不同国家的人群需求. 主要的应用方式有两种:1.根据系统的语言环境自动进行切换;2.人为的添加按钮等进行主动切换. 目前实现的主要方法有两种:1.Xcode可视化界面添加Localizations的操作.2.利用NSLocalizedString

iOS开发UI篇—简单介绍静态单元格的使用

iOS开发UI篇-简单介绍静态单元格的使用 一.实现效果与说明 说明:观察上面的展示效果,可以发现整个界面是由一个tableview来展示的,上面的数据都是固定的,且几乎不会改变. 要完成上面的效果,有几种方法: (1)可以直接利用代码,返回三组,在判断每组有多少行,展示些什么数据,这样写"死"的代码建议绝不要使用. (2)稍微灵活一些的,可以把plist文件一懒加载的方式,加载到程序中,动态获取.但是观察界面结构,很容易看出这样需要进行模型嵌套,很麻烦. (3)storyboard提

iOS开发UI篇—无限轮播(功能完善)

iOS开发UI篇—无限轮播(功能完善) 一.自动滚动 添加并设置一个定时器,每个2.0秒,就跳转到下一条. 获取当前正在展示的位置. 1 [self addNSTimer]; 2 } 3 4 -(void)addNSTimer 5 { 6 // NSTimer timerWithTimeInterval:<#(NSTimeInterval)#> target:<#(id)#> selector:<#(SEL)#> userInfo:<#(id)#> repe

iOS开发网络篇—文件下载(五&#183;下载功能的封装)

iOS开发网络篇—文件下载(五·下载功能的封装) 一.简单说明 在前面几篇文章介绍下载代码的基础上,此文分析对下载功能进行封装. 通过之前的代码,我们发现仅仅是下载一个文件就需要写很长的代码,那么如果要下载多个文件,就需要写多份代码.在这里,我们把下载一个文件的代码进行封装.控制器只需要知道,下载哪个文件,下载到哪个路径就可以了. 在对下载的功能进行封装后,添加一个文件下载器,一个文件下载器只下载一个文件,封装后如果要下载多个文件的话,那么只需要创建多个文件下载器对象就可以进行控制和下载了. 二