IOS 手动添加第三方库报错问题
当不想使用CocoaPods来管理和使用第三方库的时候,就需要手动添加和配置这些第三方库,难免会出现一些问题,主要问题汇总如下:
1、AFNetworking、NKNetWork、ZxingObjC等第三方库为了支持低版本的系统(IOS 5,6)会出现不能编译如下代码
@property (nonatomic, strong)dispatch_queue_t
这是因为,当IOS SDK版本>=6.0时,ARC会管理GCD对象,当IOS SDK版本<6.0时,GCD是需要手动管理的,兼容则需要写如下代码
//声明属性时
#if OS_OBJECT_USE_OBJC
@property (strong, nonatomic) dispatch_queue_t barrierQueue;
#else
@property (assign, nonatomic) dispatch_queue_t barrierQueue;
#endif //在dealloc方法中应该加上
#if !OS_OBJECT_USE_OBJC //这个宏是在sdk6.0之后才有的,如果是之前的,则OS_OBJECT_USE_OBJC为0
dispatch_release(_barrierQueue);
#endif //当然了,也可以使用
#if __IPHONE_OS_VERSION_MIN_REQUIRED < 60000 // 6.0sdk之前
dispatch_release(_barrierQueue);
#endif // __IPHONE_OS_VERSION_MIN_REQUIRED 是在工程最低部署sdk版本
// OS_OBJECT_USE_OBJC 这个宏是在SDK6.0之后才有的,若是6.0之前则为0
如果你部署的最低目标低于 iOS 6.0 or Mac OS X 10.8
你应该自己管理GCD对象,使用(dispatch_retain,dispatch_release),ARC并不会去管理它们
如果你部署的最低目标是 iOS 6.0 or Mac OS X 10.8 或者更高的
ARC已经能够管理GCD对象了,这时候,GCD对象就如同普通的OC对象一样,不应该使用dispatch_retain 或 dispatch_release
IOS 手动添加第三方库报错问题的更多相关文章
- CocoaPods 添加第三方库报错
1.终端报错:The dependency MBProgressHUD (~> 0.9.2) is not used in any concrete target.2.原因:CocoaPods升 ...
- pip安装第三方库报错Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None))...
pip安装第三方库时报错Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None))...,详细报错见下 ...
- python安装第三方库报错visual c++ 14.0 is required
使用python安装第三方库时报错如下: error: Microsoft Visual C++ 14.0 is required. Get it with “Microsoft Visual C++ ...
- vue-cli创建的项目中引入第三方库报错 'caller', 'calle', and 'arguments' properties may not be...
http://blog.csdn.net/sophie_u/article/details/76223978 以在vue中引入mui第三方库为例: 虽然针对vue,有单独的vue-mui库可以使用,但 ...
- pycharm 安装第三方库报错:AttributeError: 'module' object has no attribute 'main'
pip升级到 10.0.1 之后 老版的pycharm 使用pip安装第三方库的时候会报错,报错如上图所示: 其主要原因是 新版的 pip 更改了 部分api 将其中 pip.main() 改为 pi ...
- vue-cli创建的项目中引入第三方库报错'caller', 'calle', and 'arguments' properties may not be...
本文链接:https://blog.csdn.net/Sophie_U/article/details/76223978 问题: 在vue的main.js中引入mui.min.js时,报错. 如上,单 ...
- ios 下引用第三方类库报错
在最近刚接触的ios的一个项目中用到了腾讯的登录sdk,从git下下来之后编译报错,找不到文件,文件明明已经加入到项目中,为何找不到,由于刚接触ios开发,所有不知道什么原因,经过Google才知道 ...
- 使用pip安装第三方库报错记录
今天在使用pycharm导入第三方库的时候,报了好多超时错误,还有标题中的找不到版本,应该是网络的原因,记录下解决的办法: raise ReadTimeoutError(self._pool, Non ...
- 问题: Octave 改变文件目录后 pkg load 加载第三方库报错
懒得重新安装Octave,就直接从原来安装的目录中复制出来,使用pkg load image命令时会显示报错 pkg load image warning: addpath: "origin ...
随机推荐
- AndroidStudio3.x中api、compile和implementation的区别
首先在AndroidStudio3.x中compile已经过时 由implementation和api来代替 其次compile与api完全等同 3.x中可以完全将compile换成api mplem ...
- .Net Core调用oracle存储过程
一 前言 实战踩坑系列,调用第三方Oracle存储,各种血泪史,现记录如下. 二 入坑 首先,调用Oracle需要安装客户端驱动才行,但是在程序开发中下载客户端驱动是一个不明智的选择.于是,不管是微软 ...
- JS面试准备二
1.常用的字符串方法 1. indexOf:查找字符串某一项的初始位置2. slice:截取字符串(包含起始位置,不包含结束位置) 不会根据参数大小,交换参数位置 如果出现-1按倒数第一个数,如果出现 ...
- Linux学习资料地址汇总-不定时更(一)
https://linux.linuxidc.com/ 用户名和密码都是www.linuxidc.com
- 《JavaScript 模式》读书笔记(1)— 简介
哇,看了自己最近的一篇文章,其实那时候刚接触Jest,啥也不会(虽然现在其实也一样不会,嘿嘿),就像记录下工作中遇到的一些问题,其实,后来的一些发现吧,那两篇文章写的其实是有一些问题的.希望不会给大家 ...
- linux命令行界面如何安装图形化界面
linux命令行界面如何安装图形化界面 目录 问题描述 解决方案 安装包 测试是否安装成功 如何卸载图形化界面 遭遇问题 问题描述 当我们在安装Linux系统时,我们一开始可能安装的是非图形界面的系统 ...
- bug的前世今生
项目上发现的产品bug,若本地有问题,那就是漏测 1.提到产品bug系统 2.需要追踪,要么是漏测,要么是改出来的问题,漏测的需要补充到测试点里 项目上发现的产品bug,若本地没问题,那就是项目上的产 ...
- 深入学习用 Go 编写 HTTP 服务器
Go是一门通用的编程语言,想要学习 Go 语言的 Web 开发,就必须知道如何用 Go 启动一个 HTTP 服务器用于接收和响应来自客户端的 HTTP 请求.用 Go实现一个http server非常 ...
- 鸡汤 & 毒鸡汤
1.别低估任何人. 2.你没那么多观众,别那么累. 3.温和对人对事.不要随意发脾气,谁都不欠你的. 4.现在很痛苦,等过阵子回头看看,会发现其实那都不算事. 5.和对自己有恶意的人绝交.人有绝交,才 ...
- 如何快速高效率地学习Go语言
要想快速高效率地掌握Go语言,关键是要通过不断写代码去训练,熟能生巧.方法是没问题的,但具体的路径呢?就像开车,能不能给个导航?我希望这篇文章能起到一个导航的作用,这里提供的路径,应该对很多人都适合. ...