ios framework通用库的制作

本文详细介绍如何在Xcode中创建并配置iOS静态库工程,包括设置工程属性、添加类及方法、构建通用静态库等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、新建一个静态库工程:

\

2:取自己喜欢的名字:

\

3、删除向导所生成工程中的 Target:

\

3、删除TestFrameWork对应的工程文件夹:

\

5:删除bulid 关连项

\

选择左下角Manager Scheme

\

选中 Scheme,点击左下角的减号删除:

\

删除完成后,点击 OK 返回。

5、增加一个新目标。点击 “Add Target”
<喎?"http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+CjxpbWcgc3JjPQ=="http://www.2cto.com/uploadfile/Collfiles/20140303/20140303094208126.png" alt="\">

在弹出的对话框中选择 Mac OS X 下的 Bundle:

其实这个Bundle选择Ios中的也行,我这2种都试过,都是可以的,如果我说的不对请指出。

\

\

如上图,给库取一个名字,保持默认的 Framework(CoreFoundation),然后点击 Finish。

6、修改新目标的工程设置。选中 TARGETS 中对应的目标, Build Settings 页:

\

 

7.target 上右键get Info 在Build Settings下面设置下面的几项内容

a.Base SDK选择Latest IOS(IOS 5.1)

 

b.Build Active Architecture Only选择NO

c.Dead Code Stripping设置为NO

d.Mach-O Type 为Relocatable Object File (这个设置指定编译器作一个可以重定位的文件捆绑,通过这样做,可以把函数设置包装在框架内)

e.Link With Standard Libraries为NO

f.Wrapper Extension修改为:默认的bundle改成framework(这里将bundle修改为framework,在xcode,框架只是一个扩展的文件夹。框架里面包含了一个或多个编译的二进制源、资源和一些文件夹。文件夹通常背称为"Headers",包含了所有的公共头文件)

g.在Architectures选项选择Standard(armv6 armv7[armv7s]) (不这样编译会报错)

h.工程Info中将Bundle OS Type code的值BNDL改为:FMWK

 

在 Deployment 下,将 “Mac OS X Deployment Target”改为”Compiler Default”,

将 “Targeted Device Family”改为需要的,此处改成了”iPhone/iPad”,

同时可以根据需要修改 “iOS Deployment Target”,此处改为了 “iOS 3.0”:

8、修改预编译头:就是注释掉全部

\

10、向工程中添加一个类:

\

\

\

10、在myTestClass。h添加一个方法testFounction:

\

11、在myTestClass。m中实现方法testFounction:

\

12.打开Build Phases选项卡,右下角点击Add Build Phase–Add copy Headers,然后界面就会多出来一个Copy Headers的菜单,然后添加源文件。完成后如图所示:(Compile Sources 添加.m文件)

点击右下角的 “Add copy Headers”:

\

添加完成后,展开 “Copy Headers”:点击加号:

\

选中需要暴露的头文件,此处我们选择 “myTestClassA.h”:

\

点击 Add 按钮完成添加:此时,我们看到导出的文件在 Project 下,这样是不能暴露给别人使用的,将其移动到 Public 下:

\

12.然后Build & Run ,

\

里成功很近了 ,哈哈!

13.下面随便把我们在上面生成的framework 导入到其他的工程就可以使用了,哈哈!

\

找到刚才我们FrameWork 的工程目录的Bulid->Products->Debug-iphonesimuator->TestFrameWork.farmework

\


14.下在你想用的地方导入头文件

#import

用法如下:

 

[html] view plaincopy

  1. myTestClass* vc1=[[myTestClass alloc]init];
  2. [vc1 testFounction];
  3. [vc1 release]; 15.Bulid&Run 

     

     

    \

    16 补充说明

    \

    在Build的时候,你会发现有 Run Test Profile3个选项,一般情况下我们用的是Build for run,所以你只需要配置下Run这个选项就可以了。

    这个Build Configuration 选择Dubug 和Release 都可以Build成功,个人理解为:这个包是在用在Debug模式下还是Release模式下,最常见的就是在Debug模式下我们打印些日志,而在Release模式下我们需要把打印日志的功能隐藏。

    但是有些小问题注意下:

    如果导出库Build Configuration 为Release,那么需要把引用这个导出库的项目的Build Configuration 为Release。

    如果导出库Build Configuration 为Debug,那么需要把引用这个导出库的项目的Build Configuration 为Debug。

    也就是说你自己项目尽量和这个库的Build Configuration 一致。(如果说的不对,请指出错误)

    17 制作通用的framework

    1、选择模拟器Build下

    2、选择IOS Device Build下,这样你就会得到2个framework

    3、和制作通用静态库xx.a文件一样,用命令 lipo -create file1 file2 -output file3

    特别注意,我们制作xx.a通用库的时候,是用lipo -create ../xx.a ../xxx.a -output xxxx.a

    但是制作framework的时候用得是AA.framework里的AA,比如MyFrameWork.framework里的MyFrameWork文件,而不是MyFrameWork.framework这个文件

    比如 lipo -create ../Release-iphoneos/MyFrameWork.framework/MyFrameWork ../Release-iphonesimulator/MyFrameWork.framework/MyFrameWork

    -output ../NewFrameWork

    这个你就会得到一个NewFrameWork文件,然后把这个NewFrameWork文件重命名MyFrameWork,用这个文件把

    Release-iphoneos(iphonesimulator)/MyFrameWork.framework里的MyFrameWork 替换掉,再然后你就可以使用这个库了。

    (其实你可以导出的时候,导出为MyFrameWork,然后用这个导出的文件替换,这里只是举个例子,.framework制作比.a多了个替换的步骤)

本研究利用Sen+MK方法分析了特定区域内的ET(蒸散发)趋势,重点评估了使用遥感数据的ET空间变化。该方法结合了Sen斜率估算器和Mann-Kendall(MK)检验,为评估长期趋势提供了稳健的框架,同时考虑了时间变化和统计显著性。 主要过程与结果: 1.ET趋势可视化:研究利用ET数据,通过ET-MK和ET趋势图展示了蒸散发在不同区域的空间和时间变化。这些图通过颜色渐变表示不同的ET水平及其趋势。 2.Mann-Kendall检验:应用MK检验来评估ET趋势的统计显著性。检验结果以二元分类图呈现,标明ET变化的显著性,帮助识别出有显著变化的区域。 3.重分类结果:通过重分类处理,将区域根据ET变化的显著性进行分类,从而聚焦于具有显著变化的区域。这一过程确保分析集中在具有实际意义的发现上。 4.最终输出:最终结果以栅格图和png图的形式呈现,支持各种应用,包括政策规划、水资源管理和土地利用变化分析,这些都是基于详细的时空分析。 ------------------------------------------------------------------- 文件夹构造: data文件夹:原始数据,支持分析的基础数据(MOD16A2H ET数据 宁夏部分)。 results文件夹:分析结果与可视化,展示研究成果。 Sen+MK_optimized.py:主分析脚本,适合批量数据处理和自动化分析。 Sen+MK.ipynb:Jupyter Notebook,复现可视化地图。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值