当不想使用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 手动添加第三方库报错问题的更多相关文章

  1. CocoaPods 添加第三方库报错

    1.终端报错:The dependency MBProgressHUD (~> 0.9.2) is not used in any concrete target.2.原因:CocoaPods升 ...

  2. 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))...,详细报错见下 ...

  3. python安装第三方库报错visual c++ 14.0 is required

    使用python安装第三方库时报错如下: error: Microsoft Visual C++ 14.0 is required. Get it with “Microsoft Visual C++ ...

  4. vue-cli创建的项目中引入第三方库报错 'caller', 'calle', and 'arguments' properties may not be...

    http://blog.csdn.net/sophie_u/article/details/76223978 以在vue中引入mui第三方库为例: 虽然针对vue,有单独的vue-mui库可以使用,但 ...

  5. pycharm 安装第三方库报错:AttributeError: 'module' object has no attribute 'main'

    pip升级到 10.0.1 之后 老版的pycharm 使用pip安装第三方库的时候会报错,报错如上图所示: 其主要原因是 新版的 pip 更改了 部分api 将其中 pip.main() 改为 pi ...

  6. 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时,报错. 如上,单 ...

  7. ios 下引用第三方类库报错

    在最近刚接触的ios的一个项目中用到了腾讯的登录sdk,从git下下来之后编译报错,找不到文件,文件明明已经加入到项目中,为何找不到,由于刚接触ios开发,所有不知道什么原因,经过Google才知道 ...

  8. 使用pip安装第三方库报错记录

    今天在使用pycharm导入第三方库的时候,报了好多超时错误,还有标题中的找不到版本,应该是网络的原因,记录下解决的办法: raise ReadTimeoutError(self._pool, Non ...

  9. 问题: Octave 改变文件目录后 pkg load 加载第三方库报错

    懒得重新安装Octave,就直接从原来安装的目录中复制出来,使用pkg load image命令时会显示报错 pkg load image warning: addpath: "origin ...

随机推荐

  1. AndroidStudio3.x中api、compile和implementation的区别

    首先在AndroidStudio3.x中compile已经过时 由implementation和api来代替 其次compile与api完全等同 3.x中可以完全将compile换成api mplem ...

  2. .Net Core调用oracle存储过程

    一 前言 实战踩坑系列,调用第三方Oracle存储,各种血泪史,现记录如下. 二 入坑 首先,调用Oracle需要安装客户端驱动才行,但是在程序开发中下载客户端驱动是一个不明智的选择.于是,不管是微软 ...

  3. JS面试准备二

    1.常用的字符串方法 1. indexOf:查找字符串某一项的初始位置2. slice:截取字符串(包含起始位置,不包含结束位置) 不会根据参数大小,交换参数位置 如果出现-1按倒数第一个数,如果出现 ...

  4. Linux学习资料地址汇总-不定时更(一)

    https://linux.linuxidc.com/ 用户名和密码都是www.linuxidc.com

  5. 《JavaScript 模式》读书笔记(1)— 简介

    哇,看了自己最近的一篇文章,其实那时候刚接触Jest,啥也不会(虽然现在其实也一样不会,嘿嘿),就像记录下工作中遇到的一些问题,其实,后来的一些发现吧,那两篇文章写的其实是有一些问题的.希望不会给大家 ...

  6. linux命令行界面如何安装图形化界面

    linux命令行界面如何安装图形化界面 目录 问题描述 解决方案 安装包 测试是否安装成功 如何卸载图形化界面 遭遇问题 问题描述 当我们在安装Linux系统时,我们一开始可能安装的是非图形界面的系统 ...

  7. bug的前世今生

    项目上发现的产品bug,若本地有问题,那就是漏测 1.提到产品bug系统 2.需要追踪,要么是漏测,要么是改出来的问题,漏测的需要补充到测试点里 项目上发现的产品bug,若本地没问题,那就是项目上的产 ...

  8. 深入学习用 Go 编写 HTTP 服务器

    Go是一门通用的编程语言,想要学习 Go 语言的 Web 开发,就必须知道如何用 Go 启动一个 HTTP 服务器用于接收和响应来自客户端的 HTTP 请求.用 Go实现一个http server非常 ...

  9. 鸡汤 & 毒鸡汤

    1.别低估任何人. 2.你没那么多观众,别那么累. 3.温和对人对事.不要随意发脾气,谁都不欠你的. 4.现在很痛苦,等过阵子回头看看,会发现其实那都不算事. 5.和对自己有恶意的人绝交.人有绝交,才 ...

  10. 如何快速高效率地学习Go语言

    要想快速高效率地掌握Go语言,关键是要通过不断写代码去训练,熟能生巧.方法是没问题的,但具体的路径呢?就像开车,能不能给个导航?我希望这篇文章能起到一个导航的作用,这里提供的路径,应该对很多人都适合. ...