iOS中如何引用另一个工程的方法教程
前言
想必很多程序猿都见过那些第三方的框架里边引用其他的工程的代码,初见觉得非常高大上,但是完全没有头绪,一直抱着羡慕的心态就这么不了了之了。后来我们项目里需要引入googleDrive的框架,遇到了一些问题,没办法只能抱着电脑找老大解决,给我解释了一通,貌似是路径问题,当时只是解决了问题,自己也没有去研究,今天看到有人提问相关问题,就想趁此机会总结一下~
Xcode中使用Workspace来管理多个项目:
具体操作如下:
1.创建Workspace
2.右键选择Add Files to "XXWorkspace"
3.然后选择需要添加项目的xcodeproj
4.添加完是这个样子的
这样我们就可以一个工程管理多个项目了;那么如何实现工程间的联编呢?
1.新建一个.a静态库工程
2.将需要引用静态库工程的路径添加到header search path
3.添加关联Build Phases Link Binary With Libraries (另一个工程文件的.a或.app文件)
这一步很重要,不然会编译错误
4.接下来就是测试是否引入成功了
TestC中的方法:
TestB中的引用:
输出结果:
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对我们的支持。
相关推荐
-
iOS开发之统计Xcode工程的代码行数
话不多说了,方法如下: 一.打开终端,用cd命令 定位到工程所在的目录,然后调用以下命名即可把每个源代码文件行数及总数统计出来: find . "(" -name "*.m" -or -name "*.mm" -or -name "*.cpp" -or -name "*.h" -or -name "*.rss" ")" -print | xargs wc -l 其中,
-
iOS逆向工程使用dumpdecrypted工具给App脱壳
本篇以微信为例,给微信脱壳."砸壳"在iOS逆向工程中是经常做的一件事情,,因为从AppStore直接下载安装的App是加壳的,其实就是经过加密的,这个"砸壳"的过程就是一个解密的过程.未砸壳的App是无法在Class-dump.Hopper等工具中使用的.所以我们要将App进行砸壳处理.在Android开发中也存在App加壳的处理,比如什么360加固了,其实就是给App加一层壳. 本篇我们就以WeChat(微信)为例,从AppStore上下载微信并安装,然后使用d
-
iOS逆向工程使用LLDB的USB连接调试第三方App
LLDB是Low Level Debugger的简称,在iOS开发的调试中LLDB是经常使用的,LLDB是Xcode内置的动态调试工具.使用LLDB可以动态的调试你的应用程序,如果你不做其他的额外处理,因为debugserver缺少task_for_pid权限,所以你只能使用LLDB来调试你自己的App.那么本篇博客中就要使用LLDB来调试从AppStore下载安装的App,并且结合着Hopper来分析第三方App内部的结构.LLDB与Hopper的结合,会让你看到不一样的东西,本篇博客就会和你
-
iOS逆向工程之Hopper中的ARM指令详解
虽然前段时间ARM被日本软银收购了,但是科技是无国界的,所以呢ARM相关知识该学的学.现在看ARM指令集还是倍感亲切的,毕竟大学里开了ARM这门课,并且做了不少的实验,当时自我感觉ARM这门课学的还是可以的.虽然当时感觉学这门课以后似乎不怎么用的上,可曾想这不就用上了吗,不过之前学的都差不多忘了,还得捡起来呢.ARM指令集是精简指令集,从名字我们就能看出指令的个数比那些负责指令集要少一些.当然本篇所涉及的ARM指令集是冰山一角,不过也算是基础,可以阅读Hopper中的汇编了,实践出真知,看多了自
-
iOS中如何引用另一个工程的方法教程
前言 想必很多程序猿都见过那些第三方的框架里边引用其他的工程的代码,初见觉得非常高大上,但是完全没有头绪,一直抱着羡慕的心态就这么不了了之了.后来我们项目里需要引入googleDrive的框架,遇到了一些问题,没办法只能抱着电脑找老大解决,给我解释了一通,貌似是路径问题,当时只是解决了问题,自己也没有去研究,今天看到有人提问相关问题,就想趁此机会总结一下~ Xcode中使用Workspace来管理多个项目: 具体操作如下: 1.创建Workspace 2.右键选择Add Files to "XX
-
iOS中利用CoreAnimation实现一个时间的进度条效果
在iOS中实现进度条通常都是通过不停的设置progress来完成的,这样的进度条适用于网络加载(上传下载文件.图片等).但是对于录制视频这样的需求的话,如果是按照每秒来设置进度的话,显得有点麻烦,于是我就想直接用CoreAnimation来按时间做动画,只要设置最大时间,其他的就不用管了,然后在视频暂停与继续录制时,对动画进行暂停和恢复即可.录制视频的效果如下: 你可以在这里下载demo 那么接下来就是如何用CoreAnimation实现一个进度条控件了. 首先呢,让我们创建一个继承自CASha
-
iOS中设置清除缓存功能的实现方法
绝大多数应用中都存在着清楚缓存的功能,形形色色,各有千秋,现为大家介绍一种最基础的清除缓存的方法.清除缓存基本上都是在设置界面的某一个Cell,于是我们可以把清除缓存封装在某一个自定义Cell中,如下图所示: 具体步骤 使用注意:过程中需要用到第三方库,请提前安装好:SDWebImage.SVProgressHUD. 1. 创建自定义Cell,命名为GYLClearCacheCell 重写initWithStyle:(UITableViewCellStyle)style reuseIdentif
-
Pycharm 实现下一个文件引用另外一个文件的方法
换了个电脑重新安装了Anaconda和Pycharm,把原来的项目导进去之后,有几个文件用到了另外几个文件里面的东西,引用老是报错. 如下图的位置,我这里已经修复了所以没看到标红啦: 问了别人,改一个地方的设置就好了. 如上图所示,右键选中当前project-->Mark Directory as --> Sources Root. 以上这篇Pycharm 实现下一个文件引用另外一个文件的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.
-
在IDEA的maven项目中连接并使用MySQL8.0的方法教程
首先看一下我的基本的开发环境: 操作系统:MacOS 10.13.5编辑器:IDEA 2018.3其他:MySQL8.0.15.Maven 3.3.9.JDK 1.8 好,下面就正式开始: 第一步:在IDEA中新建一个maven项目 1.使用骨架创建maven项目,此处选择:maven-archetype-quickstart 2.填入GroupId和ArtifactId 3.第一个选中maven安装的文件夹,第二个选中maven安装文件夹中的conf/settings.xml,第三个如果set
-
Android studio中生成引用.aar和.jar的方法详解
在Android Studio中对一个自己库进行生成操作时将会同时生成*.jar与*.aar文件. 分别存储位置: *.jar:库 /build/intermediates/bundles/debug(release)/classes.jar *.aar:库 /build/outputs/aar/libraryname.aar .jar 与 .aar的区别 从名称上来讲,一个是java application resource:一个是android application resource: 那
-
iOS中利用KeyChain保存用户信息的方法示例
前言 说到保存用户名和密码,以前有用过本地的数据库来保存,也接触过用userdefault来保存,后来在一个项目中发现了一个新的方法--用Keychain来保存.下面话不多说了,直接通过示例代码来介绍吧. 方法示例 一.新建一个LYKeychainTool类,导入系统Security框架 ,LYKeychainTool.h文件实现如下: // // LYKeychainTool.h // keyChainTest // // Created by Liyu on 2017/6/2. // Cop
-
iOS中键盘 KeyBoard 上添加工具栏的方法
iOS中 键盘 KeyBoard 上怎么添加工具栏? 如图中所示 在键盘上面加一条工具栏 大致思路是提前创建好工具栏,在键盘弹出的时候将工具栏显示出来,在键盘消失的时候让工具栏隐藏 上代码 设置两个变量 UIView * _toolView; //工具栏 UITextField *textField;// 输入框 呼出键盘用 创建工具栏 输入框 添加键盘弹出 消失的通知 - (void)viewDidLoad { [super viewDidLoad]; // Do any additional
-
VMware中让CentOS利用桥接上网的方法教程
如何选择正确的方式上网,直白地说,就是以下几点: 要使虚拟机能连接互联网,并且外部网络或局域网能访问到虚拟机(独立公网 IP 或局域网 IP),使用桥接模式 要使虚拟机能连接互联网,但是不在意虚拟机与宿主机是否能通信(比如连接 SSH),外部网络不能访问虚拟机,使用 NAT 模式 要使虚拟机不能连接互联网,但是需要虚拟机与宿主机相互通信,使用 HOST-ONLY 模式 这里记录下在 VMware 中使 CentOS 利用桥接上网的方法(其实网上方法是可行的-) 第一步:设置 VMware 在 V
-
详解iOS中UIView的layoutSubviews子视图布局方法使用
概念 在UIView里面有一个方法layoutSubviews: 复制代码 代码如下: - (void)layoutSubviews; // override point. called by layoutIfNeeded automatically. As of iOS 6.0, when constraints-based layout is used the base implementation applies the constraints-based layout, other
随机推荐
- Node.js实现数据推送
- Lua中类的实现
- IE奥秘——添加新菜单项(推荐)
- 用VBS脚本实现更换Windows Xp序列号的代码
- 从美的原则谈 WWW 网页上的艺术表现
- Mybatis分页插件PageHelper的使用详解
- 老生常谈javascript中逻辑运算符&&和||的返回值问题
- javascript使用 concat 方法对数组进行合并的方法
- python函数局部变量用法实例分析
- jQuery中remove()方法用法实例
- LVS(Linux Virtual Server)Linux 虚拟服务器介绍及配置(负载均衡系统)
- 对dbunit进行mybatis DAO层Excel单元测试(必看篇)
- 积分获取和消费的存储过程学习示例
- jquery+css实现的红色线条横向二级菜单效果
- 全面了解JavaScript对象进阶
- 让服务器iis支持.apk文件下载的设置方法
- apache虚拟机配置步骤和修改访问端口的方法(虚拟机端口映射)
- 详解Spring极速集成注解redis实录
- Android仿QQ圆形头像个性名片
- python 抓包保存为pcap文件并解析的实例