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逆向工程使用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逆向工程使用dumpdecrypted工具给App脱壳
本篇以微信为例,给微信脱壳."砸壳"在iOS逆向工程中是经常做的一件事情,,因为从AppStore直接下载安装的App是加壳的,其实就是经过加密的,这个"砸壳"的过程就是一个解密的过程.未砸壳的App是无法在Class-dump.Hopper等工具中使用的.所以我们要将App进行砸壳处理.在Android开发中也存在App加壳的处理,比如什么360加固了,其实就是给App加一层壳. 本篇我们就以WeChat(微信)为例,从AppStore上下载微信并安装,然后使用d
-
iOS开发之统计Xcode工程的代码行数
话不多说了,方法如下: 一.打开终端,用cd命令 定位到工程所在的目录,然后调用以下命名即可把每个源代码文件行数及总数统计出来: find . "(" -name "*.m" -or -name "*.mm" -or -name "*.cpp" -or -name "*.h" -or -name "*.rss" ")" -print | xargs wc -l 其中,
-
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
随机推荐
- ORACLE学习笔记-查询篇
- Vue实现typeahead组件功能(非常靠谱)
- u盘病毒清除 Discovery.exe查杀方法
- asp.net 合并GridView中某列相同信息的行(单元格)
- Asp.net动态生成html页面的方法分享
- ASP.NET小结之MVC, MVP, MVVM比较以及区别(一)
- Android实现Activity之间通信的方法
- Python3中使用PyMongo的方法详解
- 用ASP创建MDaemon用户的代码
- js实现音频控制进度条功能
- 三种Node.js写文件的方式
- Java CountDownLatch完成异步回调实例详解
- jquery实现Slide Out Navigation滑出式菜单效果代码
- 完美解决jQuery fancybox ie 无法显示关闭按钮的问题
- PHP浮点比较大小的方法
- Android仿微信发表说说实现拍照、多图上传功能
- C# 字符串、数组和List的截取和转换实例
- Vue实现点击时间获取时间段查询功能
- layui自己添加图片按钮并点击跳转页面的例子
- layer.prompt使文本框为空的情况下也能点击确定的方法