33个2017年必须了解的iOS开源库
原文
本文翻译自Medium,原作者为 Paweł Białecki
照片版权:(Unsplash/Markus Pe)
你好,iOS 开发者们!我的名字叫 Paweł,我是一个独立 iOS 开发者,并且是 Enter Universe 的作者。
大约两年前我发布了 27 个iOS开源库,让你的开发坐上火箭吧。这是我在这里最棒的文章了(根据 Medium 用户的反馈来看):
如果有 15.5 万人 很担心能否跨越网络上连山排海般的文字找到最棒的 iOS 开源库,那我来传递。
可以看一下我的 GitHub 主页,在这篇文章之后又星了超过 180 个 repositories,所以是时候更新我的 Medium 了。
跟 33 个 pod 打个招呼,它们会让你 2017 年的开发坐上火箭。点火发射啦。
照片版权:(NASA/Joel Kowsky)
在文章的底部你会找到 TL;DR 即总结列表,列出了所有这些库,并且有相应的链接以及 CocoaPods 名字(如果有的话)。阅读过程中不需要记笔记。现在开始谈正事。
1.IGListKit,作者是Instagram Engineering
Instagram 程序员做的,IGListKit 是数据驱动的 UICollectionView 框架,为了构建快速和可扩展的列表。另外,它有助于你在 app 结束对于大量视图控制器的使用。看看这篇来自 Ray Wenderlich 的教程,关于如何在项目中实现这个库,或者读读这篇Rodrigo Cavalcante 的文章,关于迁移现有的 UITableView 到 IGListCollectionView。
Instagram/IGListKit - 为了构建快速和可扩展的列表而生的数据驱动 UICollectionView 框架
2. Realm,作者是realm.io
Realm是一个直接运行在手机、平板和可穿戴设备内部的移动端数据库,不只是 iOS。如果你想试一点和 Core Data 不一样的,就用 Realm。许多人说它是一个现代化的、产品已经可以替代苹果原生的解决方案。
realm/realm-cocoa - Realm 是一个移动端数据库:Core Data 和 SQLite 的替代品
3.Moya,作者是Ash Furrow
Moya 是你的 app 中缺失的网络层。不用再去想在哪儿(或者如何)安放网络请求,Moya 替你管理。
Moya/Moya - 用 Swift 写的网络抽象层
4.SwiftyJSON,作者是 Pinglin Tang
Swift 界 JSON 解析之王。
把这段代码:
if let statusesArray = try? JSONSerialization.jsonObject(with: data, options: .allowFragments) as? [[String: Any]],
let user = statusesArray[0]["user"] as? [String: Any],
let username = user["name"] as? String {
// Finally we got the username
}
变成了这段:
let json = JSON(data: dataFromNetworking)
if let userName = json[0]["user"]["name"].string {
// Now you got your value
}
自动替你完成了可选值的拆包。
SwiftyJSON/SwiftyJSON - 在 Swift 里处理 JSON 更好的方式
5.Valet,作者是Square
Valet 允许你安全的在 iOS 或 OS X 钥匙链中存储数据,而不需要掌握任何钥匙链如何工作的知识。它支持在一台设备的多个应用(同一个开发者)间分享数据,以及在一个应用中在多个设备间利用 iCloud 进行分享。支持 Touch ID?没问题。
square/Valet - Valet 可以让你安全地在 iOS 或 OS X 钥匙链中存储数据,而不需要掌握任何钥匙链工作的知识。
6. Firebase Analytics 作者是 Google Developers
由谷歌制作(好吧,收购),应该是 iOS 最好的免费分析解决方案。追踪 app 使用量、用户活跃度、以及事件;设置用户属性;创建自定义受众;还有更多。
Firebase Analytics | Firebase - Firebase Analytics 是一个免费 app 监测解决方案,洞察 app 用量和用户活跃度
7. AsyncDisplayKit
Facebook 为他们的 app Paper 创造了这个异步 UI SDK。如果你想让你的 app 总是每秒用 60 帧的速度来渲染,一定要看看这个库。这儿有一篇来自 Buffer 团队的故事:
Buffer 里 iOS 的平滑滚动:如何(以及为什么)我们实现了 AsyncDisplayKit - 每年苹果的 WWDC 结束后,我们都会把最多的注意力转换到更新我们的 Buffer…
facebook/AsyncDisplayKit - iOS app 的平滑异步用户界面。
8.DZNEmptyDataSet
用户安装了你的 app 之后,就会看见一个空白的 UITableView。
DZNEmptyDataSet 帮助你避免这个情况,它提供了 Empty Data Set Pattern 的默认实现。
dzenbot/DZNEmptyDataSet - 嵌入式 UITableView/UICollectionView 的父类类别,用于显示空的数据集,无论何时…
9. Chameleon 作者是 Vicc Alexander
Chameleon 是一个轻量、又强大的 iOS 颜色框架。它基于“软件应用程序应该轻松地实现功能,同时保持漂亮的界面”这个想法而创建。
有了 Chameleon,你就不再需要捣鼓 RGB 值、浪费时间搞明白 app 里正确的颜色组合、以及为文本能否在 app 里不同的背景下可以被看见而烦恼。
ViccAlexander/Chameleon - iOS 的扁平颜色框架(Obj-C 和 Swift)
10. PermissionScope,作者是Nick O’Neill
PermissionScope 是一个 Swift 框架,为了向用户巧妙地请求权限。它不只包含简单的权限请求 UI,还有统一的权限 API 可以告诉你任意给定的系统权限的状态,当然也可以轻松地请求它们。
nickoneill/PermissionScope - 巧妙的 iOS 权限 UI 和 统一 API
11. FileKit 作者是 Nikolai Vazquez
FileKit 是一个 Swift 框架,提供了简单和富有表现力的文件管理。看看使用示例。
nvzqz/FileKit - 简单和富有表现力的 Swift 文件管理
12. SwiftyUserDefaults 作者是 Radek Pietruszewski
SwiftyUserDefaults 让 user defaults 用起来很愉悦,通过结合意味深长的 Swifty API 和静态输入的益处。在一个地方定义键,轻松地使用值类型,获得额外的安全性和方便的编译时检查,这些都是免费的。
radex/SwiftyUserDefaults - NSUserDefaults 的现代化 Swift API
13. Kingfisher,作者是王巍
Kingfisher 是一个轻量、纯 Swift 的库,可以从网络中异步下载和缓存图片。
onevcat/Kingfisher
14. Hero 作者是 Luke Zhao
Hero 是为了构建 iOS 试图控制器过渡动画的库。它在 UIKit 繁琐的过渡动画 API 之上提供了一个层,使得自定义过渡动画对于开发人员来说是一个轻松的任务。
lkzhao/Hero - iOS 优雅的过渡动画库,用 Swift 写的。
15. Hedwig 作者是王巍
Hedwig 是一个 Swift 包,提供了一组高级 API,可以让你轻松地发送电子邮件到SMTP服务器。如果你打算在下一个神奇的 Swift 服务器 app里发送 email,Hedwig 可能是一个好的选择。
onevcat/Hedwig - 像老板一样发送邮件到任意 SMTP 服务器,用 Swift 编写并且是跨平台的
16. DeviceKit 作者是Dennis Weissmann
DeviceKit 是 UIDevice 的值类型替换。轻松获取设备信息和电池电量。
dennisweissmann/DeviceKit
17. Charts
漂亮的线图、饼图、条形图、分布图、气泡图、雷达图还有更多种类,这是一个图表库。
danielgindi/Charts - iOS/tvOS/OSX 的漂亮图表!跨平台的 MPAndroidChart 的苹果端
18. MGSwipeTableCell
一个易于使用的UITableViewCell子类,允许显示带有多种转换的可滑动按钮。
MortimerGoro/MGSwipeTableCell
19. RandomKit 作者是 Nikolai Vazquez
简单易用的随机数据生成。
#285: 用 RandomKit 生成随机数据 - 无论是在 app 的原型界面需要样本值,还是游戏逻辑的一些乘法器,随机…
nvzqz/RandomKit - Swift 中的随机数据生成
20. ResponseDetective
ResponseDetective 是一个非嵌入式框架,用于拦截应用程序和服务器之间的任何传出请求和传入响应以用于调试目的。
用 ResponseDetective 让 iOS 里的 HTTP 调适更容易 - 我们很高兴地发布新的,用于HTTP调试的开源iOS工具 - ResponseDetective。你有多少次...
netguru/ResponseDetective - 网络层里的夏洛克·福尔摩斯
21. Onboard
只需几行代码,即可轻松创建漂亮,引人入胜的用户指导页体验。
mamaral/Onboard
22. Quick + Nimble 作者是 もどかしい
Quick是 Swift 和 Objective-C 的BDD测试框架,和匹配器框架 Nimble 配合使用。
Quick/Quick - Swift (以及 Objective-C)测试框架。
Quick/Nimble - Swift 和 Objective-C 的匹配器
23. Natalie 作者是 Marcin Krzyzanowski
Natalie 生成基于 storyboard 文件的 Swift 代码,使 storyboard 和 segue 更容易使用。生成的文件减少了用字符串作为 Segue 或 Storyboard 的标识符的情况。
krzyzanowskim/Natalie - Storyboard 代码生成器(Swift)
24. RxSwift 作者是 ReactiveExtensions*
对Swift中的 reactive 编程感兴趣?这里是RxSwift。
ReactiveX/RxSwift
25. GDPerformanceView 作者是 Daniil Gavrilov
GDPerformanceView在状态栏上方显示 FPS,CPU 使用情况,app 和 iOS 版本,并通过 delegate 报告 FPS 和 CPU 使用情况。
dani-gavrilov/GDPerformanceView-Swift
26. Alamofire
Alamofire 是用 Swift 写的 HTTP 网络库。
Swift 里的绝对网络指南,用 Alamofire - 自从2014年6月语言发布以来,Swift的网络已经成为争论焦点。甚至…
Alamofire/Alamofire - Swift 中 优雅的 HTTP 网络
27. SwiftyStoreKit 作者是 Andrea Bizzotto
SwiftyStoreKit 是一个轻量的 app 内购框架,支持 iOS 8.0+,tvOS 9.0+和macOS 10.10+。
bizz84/SwiftyStoreKit
28. Timepiece 作者是 AnyType
Swift 里直观的日期处理。
naoty/Timepiece
29. CryptoSwift 作者是 Marcin Krzyzanowski
Swift 里加密相关的帮助函数实现。
krzyzanowskim/CryptoSwift - CryptoSwift 是一个不断扩充的集合,包含了标准、安全、用 Swift 实现的加密算法
30. FSCalendar
完全自定义的 iOS 日历库,兼容 Objective-C 和 Swift。
WenchaoD/FSCalendar
31. ImageViewer 作者是 Kristian Angyal
模仿 Twitter 的图片浏览器。
MailOnline/ImageViewer
32. PromiseKit
PromiseKit 是对于任意有 swiftc 的平台的周到和完整的 promises 实现,它有优秀的 Objective-C 桥接和赏心悦目的 iOS、macOS、tvOS 和 watchOS 专业化。
mxcl/PromiseKit - Swift 和 ObjC 的 Promises
33. Ensembles 作者是 Drew McCormack
Ensembles 是一个 Objective-C 框架——也支持 Swift —— 它扩展了Apple的Core Data框架,为Mac OS和iOS添加了点对点同步。多个 SQLite persistent store 可以通过文件同步平台(如iCloud或Dropbox)耦合在一起。该框架可以容易地扩展以支持能够在设备之间移动文件的任何服务,包括自定义服务器。
这些库的 TL;DR 列表,供快速查询:
1.IGListKit [UICollectionView 框架] -> pod 'IGListKit', '~> 2.0.0
2.Realm [移动端数据库] -> pod 'RealmSwift’
3.Moya [抽象网络层] -> pod 'Moya', ‘8.0.0’
4.SwiftyJSON [JSON 解析] -> pod 'SwiftyJSON’
5.Valet [钥匙串帮手] -> pod 'Valet’
6.Firebase Analytics [分析] -> pod 'Firebase/Core’
7.AsyncDisplayKit [异步 UI SDK] -> pod 'AsyncDisplayKit’
8.DZNEmptyDataSet [空状态模式] -> pod 'DZNEmptyDataSet’
9.Chameleon [扁平化颜色框架] -> pod 'ChameleonFramework/Swift', :git => 'https://github.com/ViccAlexander/Chameleon.git'
10.PermissionScope [iOS 权限框架] -> pod 'PermissionScope’
11.FileKit [文件管理] -> pod 'FileKit', '~> 4.0.0’
12.SwiftyUserDefaults [user defaults 帮手] -> pod 'SwiftyUserDefaults’
13.Kingfisher [下载图片] -> pod 'Kingfisher', '~> 3.0’
14.Hero [自定义试图控制器过渡动画] -> pod 'Hero’
15.Hedwig [发送 email]
16.DeviceKit [设备信息] -> pod 'DeviceKit', '~> 1.0’
17.Charts [图表] -> pod 'Charts’
18.MGSwipeTableCell [可以滑动的 table cells] -> pod 'MGSwipeTableCell’
19.RandomKit [随机生成数字] -> pod 'RandomKit', '~> 3.0.0’
20.ResponseDetective [调适网络请求] -> pod 'ResponseDetective’
21.Onboard [用户指导页] -> pod 'Onboard’
22.Quick + Nimble [BDD 测试] -> pod 'Quick’
pod 'Nimble’
23.Natalie [从 storyboard 生成代码]
24.RxSwift [reactive 编程] -> pod 'RxSwift', '~> 3.0’
25.GDPerformanceView [实时 FPS and CPU 用量] -> pod 'GDPerformanceView-Swift', '~> 1.1.0’
26.Alamofire [网络] -> pod 'Alamofire', '~> 4.3’
27.SwiftyStoreKit [app 内购] -> pod 'SwiftyStoreKit’
28.Timepiece [date 帮手] -> pod 'Timepiece’
29.CryptoSwift [加密] -> pod 'CryptoSwift’
30.FSCalendar [日历] -> pod 'FSCalendar’
31.ImageViewer [模仿 Twitter 的图片查看器] -> pod 'ImageViewer’
32.PromiseKit [promises] -> pod 'PromiseKit', '~> 4.0’
33.Ensembles [Core Data 同步] -> pod 'Ensembles’
感谢阅读,这不是你在 Medium 上可以读到的最短的文章!如果你喜欢这篇文章,点击下面的 ?? 来把它分享给你的朋友,这样更多的人会发现这些非常棒的库。你也可以 在 Twitter 上 follow 我,,那儿我发的基本都是 iOS 开发。谢谢!
相关文章:

codeforces 610D D. Vika and Segments(离散化+线段树+扫描线算法)
题目链接: D. Vika and Segments time limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputVika has an infinite sheet of squared paper. Initially all squares are white. She introduced a two-dimensional c…

ubuntu下安装redis
安装reids服务器 apt-get install redis-server 测试是否安装成功 redis-cli 安装phpredis扩展 #wgethttps://github.com/nicolasff/phpredis/downloads #tar -zxvf nicolasff-phpredis-2.1.3-124-gd4ad907.tar.gz # mv nicolasff-phpredis-d4ad907 php-5.3.8/ext/phpredis/ # …

往往存储与计算机硬盘或其他,硬盘是计算机系统中信息资源最重要的存储设备其所存放信息-Read.DOC...
硬盘是计算机系统中信息资源最重要的存储设备其所存放信息-ReadPAGEPAGE 2摘要关键字:磁盘、硬盘、中断13、扩展中断13、分区表、MBR、DBR、DPT、Boot、CMOS、FAT、柱面、磁道、磁头、扇区随着科学技术的不断发展和社会信息化程度的不断提高,电脑已逐渐深…
【Ghost Blog】如何给Ghost Blog添加背景音乐
昨天闲着无聊,就给自己的电脑装了一个Ghost的博客,打开博客的第一眼就被震撼到了,我们可以发现界面十分的简介。。。。上面的都是废话 我们来看一看我我选择的音乐播放器——网易云音乐,这个播放器就是在一个歌曲上点开之后有一个…
AE 动画直接变原生代码:Airbnb 发布开源动画库 Lottie
原文 Airbnb 发布的 Lottie 是一个面向 iOS、Android 和 React Native 的开源动画库。 简单来说,就是可以直接利用 AE 导出的 JSON 动画文件,将其解析为原生代码,并跨平台运行在设备上。 根据身边朋友的试用,通过 Canvas 绘制动画…

纹理贴图的模式设置
1 要对纹理进行任何的操作,必须先使该纹理问当前的active纹理 glGenTextures( 1, &reflectionTexObj );glBindTexture( GL_TEXTURE_2D, reflectionTexObj );glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT );glTexParameteri( GL_TEXTURE_2D, G…

人社局计算机考试报名时间,内蒙古人社局:2016年下半年计算机软件水平考试报名时间通知...
关于做好2016年度下半年计算机技术与软件专业技术资格、翻译专业资格(水平)考试笔译考试报名工作的通知各旗县区人力资源和社会保障局、市直有关单位:根据内蒙古自治区人事考试中心《关于做好2016年度下半年计算机技术与软件专业技术资格(水平)考试报名工作的通知》…
即时通讯下数据粘包、断包处理实例(基于CocoaAsyncSocket)
来源:涂耀辉 www.jianshu.com/p/2e16572c9ddc 如有好文章投稿,请点击 → 这里了解详情 前言 本文旨以实例的方式,使用CocoaAsyncSocket这个框架进行数据封包和拆包。来解决频繁的数据发送下,导致的数据粘包、以及较大数据&#x…

linux下 为自己编写的程序 添加tab自动补全 功能
linux下 为自己编写的程序 添加tab自动补全功能 入门 complete 在我的tmp下随便写了一个a.sh, 为他补全edit /etc/bash_completion.d/foo_foo() {local cur prev optsCOMPREPLY()cur"${COMP_WORDS[COMP_CWORD]}"prev"${COMP_WORDS[COMP_CWORD-1]}"opts&quo…

笔记本电脑(Windows7)实现无线AP
使用环境:出差两个同事住一个房间、网线不够用、没有路由器 1、在windows命令窗口中运行以下命令 netsh wlan set hostednetwork modeallow netsh wlan set hostednetwork ssidOPEN key1234567890 netsh wlan start hostednetwork 命令解释:在笔记本插有…

华北电力大学计算机图形学实验报告,华北电力大学计算机图形学实验报告分析.doc...
华北电力大学计算机图形学实验报告分析科 技 学 院课程设计(综合实验)报告( 2013 -- 2014 年度第 2 学期)实验名称 OpenGL基本图元绘制实验课程名称 计算机图形学||专业班级:计算机11K1 学生姓名:曲强学 号:111909010118 成 绩:指…
Fastlane 入门实战教程从打包到上传iTunes connect
有关神器 Fastlane 持续集成\部署的文章网上挺多,本文定位是入门教程,针对 iOS 应用的持续部署,只需一条命令就可实现从 Xcode 项目到 编译\打包\构建\提交审核 文章稍微有点长,涵盖内容为:fastlane 简介\安装\配置 Snapshot 截图 XCTest 一键上传App Store 说明:本文将 App…

double int char 数据类型
贴心的limits... 测试代码: #include <iostream> #include <stdio.h> #include <limits> #include <math.h> using namespace std;int main() {//double 有效数字16位double test3 1.2345678912345678e17;printf("%.17lf\n", te…

开发工具Drawscript
在Mac App Store上有一款iOS开发工具PaintCode(MAC App Store地址)。它可以通过矢量绘图来绘出你想要生成的用户控件界面,然后由PaintCode来动态生成iOS & OSX绘制代码。这样,你在drawRect函数中就只要粘贴拷贝就能生成自己想要的图案了。奈何&#…

悉尼大学计算机研究生学制,悉尼大学研究生学制
澳大利亚悉尼大学具有丰富的研究生专业课程,学制安排一般在1-2年时间。悉尼大学硕士申请要求要求非211大学申请者,暂不需清华认证 (毕业证、学位证、成绩单)入学要求:工程类专业(Engineering,IT)Master of Professional Engineering985/211学…

2016.04.09 使用Powerdesigner进行创建数据库的概念模型并转为物理模型
2016.04.09 使用Powerdesigner进行创建数据库的概念模型并转为物理模型 2016-04-09 21:10:24 本文原创受版权保护,严禁转载。 请大家不要用于商业用途,支持正版,大家都是做软件的,知道开发一套软件实属不易啊! 今天看到了一个很有趣并且很有用的辅助…

ESTabBarController
为什么要使用? 在开发工作中,我们可能会遇到需要自定义UITabBar的情况。例如:改变文字样式、添加一些动画效果、设置一个比默认更大的样式等等,以上需求如果只通过UITabBarItem往往很难实现。 有了ESTabBarController,你可以轻松…

iPhone App开发导航条(Navigation Bar)素材PSD下载
不管是iPhone还是Android的应用App界面基本上最上方都会有个导航条(Navigation Bar)。于是我决定创建此页面整理收集所有好看的适合在iPhone App应用开发中使用的导航条素材PSD文件,并附有下载链接供需要在自己的iPhone App应用开发中需要使用…

点歌服务器工作原理,KTV点歌系统方案概述
《KTV点歌系统方案概述》由会员分享,可在线阅读,更多相关《KTV点歌系统方案概述(7页珍藏版)》请在人人文库网上搜索。1、一)目前点歌系统的主流方式目前,可以实现的KTV系统的点歌方式很多,但是可以主要归类为以下两大方式…
Xcode快捷键及代码块
2017-02-16 吴白 CocoaChina手指在键盘上飞速跳跃,终端上的代码也随着飞舞,是的这确实很酷。优秀的程序员总是这么一群人,他们不拘于现状,不固步自封,他们喜欢新奇的事,他们把自己发挥到极致。 指法攻略 放下您钟爱的鼠标吧&#…

使用logrotate管理nginx日志文件
本文转载自:http://linux008.blog.51cto.com/2837805/555829 描述:linux日志文件如果不定期清理,会填满整个磁盘。这样会很危险,因此日志管理是系统管理员日常工作之一。我们可以使用"logrotate"来管理linux日志文件&am…

c 异步中断服务器连接,异步连接和断开与epoll(Linux)
我有一个“完整”的答案在这里以防别人正在寻找这样的:#include #include ........int retVal -1;socklen_t retValLen sizeof (retVal);int status connect(socketFD, ...);if (status 0){// OK -- socket is ready for IO}else if (errno EINPROGRESS){struc…

java获取真实ip
在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的。但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了。 如果使用了反向代理软…
卡片式设计的最佳实践分享
2017-02-17 三达不留点gpj CocoaChina卡片本质上是一个简单的信息容器,信息量有限,但设计干净整洁。现如今,在保证界面具有优秀可用性的同时,卡片式的设计甚至成为了平衡界面美学的默认做法。作为最初由Pinterest和Facebook这样的…

Arduino 各种模块篇 光敏感应器 简易光敏
这一款是非常简单的光敏感应器 简单到,只对一定光强度有信号感应,输出TTL电平。 此款也是用电位器来调节的。 都是这么简单。 过段时间我为大家奉上数字版的光敏传感器。 ————————————————————————分割线———————————…

vb打开服务器excel文件路径,咨询下VB如何打开EXCEL文件并将内容显示在listbox中
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 Adodc DataGrid 控件直接连接 Excel 表格, 把 Excel 表格当成数据库。 在窗体中画出 Adodc1 和 DataGrid1 两个控件, 不做任何属性设置,只管大小和位置。 ------------------------------…

iOS动画进阶 - 手摸手教你写ShineButton动画
移动端访问不佳,请访问我的个人博客 前段时间在github上看见一个非常nice的动画效果,可惜是安卓的,想着用Swift写一个iOS版的,下下来源代码研究了一下,下面是我写代码的心路历程 先上图和demo的地址 分析动画过程 刚开…

redis自动过期
我当时设置如登陆自动过期的时间。自己找的做了下。 设置自动过期时间。 public static PooledRedisClientManager poolreds; static RedisPool() { try { poolreds new PooledRedisClientManager(10, new string[] { “101210.212.:1213” }); } catch (Exception…

Java中使用LUA脚本语言
Lua 是一个小巧的脚本语言。是巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro)里的一个研究小组,由Roberto Ierusalimschy、Waldemar Celes 和 Luiz Henrique de Figueiredo所组成并于1993年开发。简单介绍可详…

电脑显示服务器地址无法ping通,网关无法Ping通故障及解决方法
很多网络故障是常见问题,一般的三板斧方法就能解决问题,但有些故障容易让我们多走弯路,我们不妨拓宽故障排查范围,换换思路。在与网络亲密接触的过程中,我们或多或少地会遇到一些网络故障,对于许多网络故障…