iOS开发之ARC MRC混编

2023-05-16

Xcode5之后,新建iOS工程,默认都是ARC模式,但是有时候我们的项目中需要用到一些第三方框架,我们下载下来却发现是非ARC的,这时候我们需要进行ARC和MRC混编。

第一种方式,Edit->Refactor,转换成ARC方式

著名的iOS网络框架ASIHTTPRequest就是MRC,我们试试能不能转换成ARC

点击Check,我们发现悲剧了

多数情况下这种方式都会出错,那该怎么办呢?

第二种方式,给编译器加标记

可以在Build Phases中的Compile Sources中加入编译标记-fno-objc-arc,确实可行,但是文件好多,这种方式适合文件比较少的情况,文件多了难道我们要一个一个加嘛,这时候我们可以借助一个工具xproj,这是一个脚本,可以很方便的给某个文件夹内的文件添加编译标记,具体使用方法我们看项目主页就行了,既可以给ARC项目添加MRC标记(-fno-objc-arc),也可以给MRC项目添加ARC标记(-fobjc-arc)

第三种方式,打包成静态库

将我们将要使用的类拖入工程当中

勾选正确的target

将原来的类文件删除,只留我们需要的,然后我们将整个项目变为MRC

添加头文件

设置公共头文件

运行程序,我们发现静态库已经产生

这种方式的缺点就是如果需要改源码,就需要重新打包

最后一种方式,项目引用

新建一个项目,改为非ARC,在另一个项目中引用这个项目

我们需要把项目B中的无关文件删除掉

最后一种方式,自己重写成ARC方式

转载于:https://www.cnblogs.com/dongwenbo/p/4286766.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

iOS开发之ARC MRC混编 的相关文章

  • BDA驱动学习笔记(1):功能拓扑图

    功能拓扑图 Functional Topology xff1a BAD的目标是不管硬件或者接收信号如何变 xff0c 它的整体架构可以不做大调整 xff0c 为此BDA引入功能拓扑图的概念 xff0c 它把类似DirectShow Filt
  • nproc systemd on CentOS 7

    Increasing nproc for processes launched by systemd on CentOS 7 Ask Question I have successfully increased the nofile and
  • MariaDB中文乱码之解决思路

    首先出现乱码的原因就是编码不一致问题引起的 xff0c 那么就从以下2个方面入手 xff1a 1 应用层 xff1a 前提条件数据库服务端存储的中文数据是对的 xff0c 但是页面上显示乱码 xff0c 这里只需要检查你的项目的编码格式 x
  • android预置权限,安卓预置应用的特权适配

    首先要理解特权应用 位于系统分区的priv app目录下的应用就是特权应用 普通三方应用只应包含normal和dangerous 运行时 级别的权限 xff0c 特权应用可能会增加signature和privileged级别的权限 如果在a
  • react里执行shouldComponentUpdate时返回false的后果

    大家都知道生命周期shouldComponentUpdate返回false时 xff0c 不会进行后续的渲染 xff0c 那这个时候state是什么情况呢 我们看一下demo class Toggle extends React Compo
  • 同比和环比的计算

    与上年度数据对比称 34 同比 34 xff0c 与上月数据对比称 34 环比 34 相关公式如下 xff1a 1 同比增长率计算公式 当年值 上年值 上年值x100 61 增长率 2 逆运算 a 已知当年值 和同比增长率这两个参数 xff
  • mysql出现10061错误解决方法

    首先要关闭MYSQL服务 关闭你现在正在运行的mysql数据库 xff0c 用结束mysql进程或者直接关闭mysql服务器都可以 1 开始菜单 gt 运行 xff08 cmd xff09 gt 寻径到MySQL文件中的bin目录下 如 x
  • 超市/饭店等收据或者小票的生成代码

    package com chauvet utils import java awt Color import java awt Font import java awt FontMetrics import java awt Graphic
  • SpringMVC配置顺序的问题

    1 web xml xff1a web应用一经加载 xff0c 先来找他 1 xff09 xff1a 指明applicationContext的位置 2 xff09 xff1a 引入spring监听 xff0c ContextLoaderL
  • OpenSSL.Net使用随记(二)

    前面已经把使用OpenSSL Net环境准备好了 xff0c 现在来调用几个常用算法的实现 MD5 xff0c SHA1 在这只需要注意下OpenSSL Crypto MessageDiges后面签名算法会用到 1 class Progra
  • 搭建Git服务器

    第一步 xff0c 安装git yum y install git 第二步 xff0c 创建一个git用户 xff0c 用来运行git服务 xff1a adduser git 第三步 xff0c 创建证书登录 xff1a 收集所有需要登录的
  • 修改VNCSERVER 默认的分辨率的方法

    vi usr bin vncserver 1024 找到默认的1024 768修改为 1680 1050 reboot 重启 转载于 https www cnblogs com del88 p 5656356 html
  • java基础---String长度限制透彻解析

    文章目录 前言一 String源码分析二 编译期常量池限制什么是码点 xff1f 三 运行时期限制总结 xff1a 前言 在我们工作和学习中基本离不开Sring的数据类型 xff0c 虽然我们经常接触到它但是一般很少会有人关心String是
  • EOS常用API

    了解了挺长时间EOS xff0c 对于EOS的使用也比较顺畅了 xff0c 由于官方和网上很多的文件都不全或者描述有误差 xff0c 这里我整理了以下EOS常用的api xff0c 有兴趣的同学可以一起交流学习 EOS常用API介绍 nod
  • 正则表达式规则

    正则表达式规则 2008年03月11日 星期二 19 07 String matches 这个方法主要是返回是否匹配指定的字符串 xff0c 如果匹配则为true 否则为false 如 xff1a 判断字符创是否是一个有效的日期 64 pa
  • java 生产者 消费者 线程池_Java多线程 BlockingQueue实现生产者消费者模型详解

    BlockingQueue BlockingQueue 解决了多线程中 xff0c 如何高效安全 传输 数据的问题 程序员无需关心什么时候阻塞线程 xff0c 什么时候唤醒线程 xff0c 该唤醒哪个线程 方法介绍 BlockingQueu
  • ASP.NET里面的主题

    有关ASP NET主题 先建立一个主题文件 xff0c 建立好的主题文件会在App Themes文件夹下面 如图所示 建立好之后 xff0c 记得在 lt 64 Page Language 61 34 C 34 AutoEventWireu
  • cpu访问数据处理流程_CPU处理器架构和工作原理浅析

    基本微机设计 下图给出了假想机的基本设计 中央处理单元 xff08 CPU xff09 是进行算术和逻辑操作的部件 xff0c 包含了有限数量的存储位置 寄存器 xff08 register xff09 xff0c 一个高频时钟 xff08
  • 移除Java对象中的属性_移除/添加 JSON对象中的某个属性

    因为JSON完全是动态的 xff0c 所以给一个JSON对象添加一个属性是很简单的 xff0c 如 xff1a var json 61 json username 61 39 xtayfjpk 39 这样就为json对象添加了一个名为use
  • 计算机word实线边框在哪,4.22 Word 2016 形状轮廓(边框)设置(实线、渐变线)-Word2016入门进阶教程-亮术网...

    形状边框在 Word 中称为轮廓 xff0c 它与文本框 艺术字的边框大同小异 xff0c 只是文本框和艺术字不能设置箭头 形状轮廓设置也有两种方法 xff0c 一种是选择 Word 提供的样式 xff0c 另一种是自定义轮廓的各项参数 这

随机推荐