请教下玩dnf的大神们大神,关于SDWebImage3.7.5在ios9.2的适配问题

本文不是鸡汤,不是教科书,是一些经验,希望让更多人少走弯路。
首先来把初学者分几个类型:
A、对程序开发完全陌生,带着一点兴趣和高薪的期望
B、计算机相关专业应届毕业生
C、刚踏入IT领域就从事iOS开发,2年以下工作经验
D、有IT行业其他语言和平台工作经历,希望转入iOS开发领域
我们看一下这4种新人各自的优劣势:
A:想迈过这个门槛最艰难,需要付出最多,但突破后往往在未来最有潜力取得很好的成绩。为什么?第一:兴趣驱使;第二:对自己的认识会比较清晰,相对来说更愿意按部就班去系统的学习。
B:运气好的会在实习期间就接触到iOS开发,经过一段时间的磨练后变成C;底子差点的可能会选择全日制培训班,或者艰苦自学。相比较于A来说主要是学历上的优势,在专业基础方面,那就要看人了。
C:真的是非常幸运的一个群体,1年工作经验拿的薪资,可以秒杀很多3-4年其他IT领域的前辈,优势恰恰是最大的劣势,因为相当一部分人意识不到其实自己基础很薄弱,一味加强自己在iOS开发上的技能,缺少内功上的修炼。
D:最看好的一群人,特别是过去从事web端相关工作的(当然打酱油混日子的就不能算了),因为这是跟iOS端关系最紧密的一环,一旦转入iOS领域,将打通任督二脉。要克服的弱点呢,就是原有的一些惯性思维。
*大家先对号入座一下
不管自己属于哪种类型,相信都有一个共同的目标,这个目标一个字可以概括:快。
1、快速做出自己想要的app
2、快速掌握能找到工作的必需技能
3、快速成长为大神,笑傲江湖
OK,有了目标,那接下来就是给自己安排学习路线:C语言、OC语言或Swift语言,学习UI组件,做小项目练手等等。
怎么开始学呢?
自学路线:买两本经典的书,找些免费的开发教学视频,学习大牛们写的代码,遇到疑问百度,上CocoaChina发帖。
土豪路线:花大价钱去培训班闭关数月。
学习的过程大概是这样的:
1、语言学习:掌握基础的语法、理解面向对象的概念、熟悉语言的特性(比如说OC语言的协议等)、学习使用工具类
2、UI组件:每个基础组件学习、使用多遍,做些简单的组合
3、学习使用一些开源组件:AFNetworking、SDWebImage等等
4、尝试去做一个项目,在解决无数问题和修复海量bug中成长
普遍的观念认为,你能不能学会,决定于以下几个因素:
1、是否花足够的时间理解、思考
2、有木有多动手敲代码练习
3、有木有认真去阅读理解优秀的开源代码
这个过程对每个人来说差不多,大家也都努力照着这个标准去学习,但能坚持下来的都是靠毅力磨出来的,过程那是相当艰苦,那能不能更高效有趣一些呢?
必须的,铺垫就这么多,现在开始主题:
一、先动笔,再动手
动笔干什么?浪费时间,还不如多敲两行代码。
别说新人了,很多现役中级程序员也会有这样的想法。
这里说的动笔,是指的去分析某个功能、某个页面,甚至是整个项目。很多人会是这样的:简单的不屑于分析,难的觉得分不分析都一样,写起来再说。要知道你建摩天大楼也好,简易小屋也罢,事先设计好都是必须的,即便玩泥沙,脑海里也应该有一个画面。除非同样的东西已经做过n遍了,闭着眼睛都能敲出来,不然先动笔,绝对会事半功倍。
二、培养创造力
这里说的创造力,不是头脑风暴异想天开那种~我们都玩过积木,几种不同的基础物件,通过不同的组合,可以搭出很多不一样的东西来。同样一张白纸,不同的折叠方式,可以折出不同的动物啦等等。
那iOS开发人员的创造力是什么呢?举个简单的例子,如果给你一个画点的函数,你肯定会画线、画方、画圆;如果给你一个显示文本的函数,是不是也可以用UIView来做一个山寨UILabel?任何复杂的UI,都可以分解成基本的元素,只是组合方式不同,计算的规则不同罢了。我们站在普通用户的角度看一下手机屏幕,不过就是一堆文字+图片。
当然,这里谈的只是思路,要真想做到挥洒自如,是需要配合一定训练的,具体怎么做,敬请期待~
三、融合知识点
高手和新手的区别在哪里?
高手和善于学习的人,他们的知识结构是有很强的关联性的,从中寻找一个解决方案非常快速准确。
而很多新手在学习中会停在一个点上,然后学下一个点时往往会和之前的毫无关系,这样知识点相对比较零散,当要用到某个技能点的时候搜索起来很困难,可能会在别人告知的时候:哦!这个我知道的,一时没想起来!
这一点理解起来应该不难,不过怎么才能做到呢?举个例子:假设你现在刚学会用UIButton,那跟UIButton相关联的是啥呢?有很多,1:它的父类UIControl,那你就开始去了解,哪些东西其实是从UIControl继承来的,以后如果只用到这部分的功能,是不是可以只用UIControl;2:UIButton里有图片,有文本,他们是怎么存的?进入UIButton头文件你会发现,是用了几个变量来保存。那在视图上是什么关系?推测一下,就是一个UIControl里AddSubview了几个元素。and so on。。
观察、提问、推测、证实,在学习过程中养成这样的习惯,将为你构筑稳健的知识结构。那对于开发人员来说,该怎么去观察,提出怎样的问题,其实也是有一定的套路的,详情敬请期待~
四、大胆尝试
经常有新人会来问:我这个代码这样写行不行?如果我说行,他会说:可是我觉得会怎样怎样。如果我说不行,他也会问:为什么?我觉得怎样怎样。好吧。。其实很多时候也就几句代码的事情,如果你花10分钟去思考和询问该不该做的问题,那不如花2分钟去尝试一下,保证不会怀孕啦。
那如果说是稍微复杂一点的功能,如果有了思路,也应该大胆的按照自己的思路去做,只有在这个过程中你才会发现更多没考虑到的东西,即使失败,这中间的收获也是超乎你想象的。
五、给自己找事
在没有图形界面的DOS年代(如果看不懂。。请百度DOS),学编程可比现在枯燥多了,怎么办?自己找乐趣。那个时候有一个练打字的游戏,英文单词从屏幕上方往下掉,在掉出屏幕下方前要输入正确才能消除,我们就照着模仿,枯中作乐。
现在学iOS开发,有趣的事情简直不能再多了,无论你处于哪个阶段,技能到什么水平,这世界只有不想写的程序,没有不适合自己练习的。
曾经面试过一个小伙子,他说自己项目经验少,希望在实际项目中学到更多东西,我这么回他:我们工作的项目不是给你练手学习用的。
大项目经验无法取得,小练习拿不出手,这是很多新人要面对的一个难关,想让自己更有竞争力,必需在学习过程中去模仿、去创造更多,而且每次练习的规模一定要不断放大。
如果你实在是想不出来,很简单,找几个朋友跟他们说:我是做app的,你想做什么我免费帮你。但不到迫不得已千万别用这招~
先写这么些,更多的分享敬请期待~*
作者:姬长信
分类:标签:
&作者:姬长信
本博客如无特殊说明皆为原创,转载请注明来源:
QQ空间新浪微博人人网腾讯微博网易微博0
× 上一篇:
× 美文投稿(广告):
Copyright &请教使用过SDWebImage的大神关于图片下载后回调方法的问题
[问题点数:40分,结帖人u]
请教使用过SDWebImage的大神关于图片下载后回调方法的问题
[问题点数:40分,结帖人u]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2015年4月 移动开发大版内专家分月排行榜第二
2015年5月 移动开发大版内专家分月排行榜第三2015年3月 移动开发大版内专家分月排行榜第三2014年10月 移动开发大版内专家分月排行榜第三
2015年4月 移动开发大版内专家分月排行榜第二
2015年5月 移动开发大版内专家分月排行榜第三2015年3月 移动开发大版内专家分月排行榜第三2014年10月 移动开发大版内专家分月排行榜第三
2015年4月 移动开发大版内专家分月排行榜第二
2015年5月 移动开发大版内专家分月排行榜第三2015年3月 移动开发大版内专家分月排行榜第三2014年10月 移动开发大版内专家分月排行榜第三
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。在印尼,猴子的主人转移到了未执行禁令的郊区。
为数众多的同性恋聚集一处水上公园,参加水上派对。
声明:本文由入驻搜狐公众平台的作者撰写,除搜狐官方账号外,观点仅代表作者本人,不代表搜狐立场。
  2016以前至今回顾iOS开发技术的创新与发展!本文不是一篇技术深入的文章,只是对技术的回顾,如对某一技术点感兴趣,可详细参考对应的推荐链接。如有遗漏的地方,欢迎评论中补充~
  基于Apple平台的技术也发展迅速。iPhone6s/iPhone6s plus、iPad pro等新设备发布,iOS9、watchOS 2、OS X EL Capitan、tvOS等新的平台,Swift开源及Swift 2发布,React Native、JSPatch等开源社区也一片繁荣。但同时XcodeGhost等后门事件对于我们关注iOS安全也敲响了警钟。
  (一)iOS App适配64位
  2015年开年,让所有iOS开发者头疼的一件事就是苹果所有app自号起,所有提交审核的App必须适配64位,目的是能充分利用64位ARM处理器的高性能支持,让应用能够拥有更为极致的体验。(iPhone5s开始的A7处理器开始支持64位CPU)
  对于App适配64位Apple也给出了方法:
  Architectures支持
  在Xcode Building Setting中Architectures为 Standard architectures(include 64-bit)。注意:支持指令集是通过编译生成对应的二进制数据包实现的,如果支持的指令集数目有多个,就会编译出包含多个指令集代码的数据包,造成最终编译的包很大。这也是支持64位后App体积变大的主要原因。
  参考,ARM指令集对应的硬件
  ARMv8/ARM64
  iPhone 6s(Plus),iPhone 6(Plus), iPhone 5s, iPad Air(2), Retina iPad Mini(2,3)
  ARMv7s
  iPhone 5, iPhone 5c, iPad 4
  iPhone 4, iPhone 4S, iPod 3G/4G/5G, iPad, iPad 2, iPad 3, iPad Mini
  数据类型导致的变化
  导致问题:
  在32位CPU和64位CPU上整型和浮点型的字结数和字节对齐的方式都不一样,从而导致App如果按照32-bit的写法去适配64位会出现很多溢出、移位等内容问题。同时适配64位可能会导致一些其它问题。
  1)增加内存压力。
  2)64位到32位数据之间的相互转化,增加了一些性能开销。
  3)计算可能产生不同的结果。
  4)当把一个值从大的数据类型拷贝到小的数据类型,数据可能被截断,如NSInteger -& int。
  解决办法:
  解决办法需要遵循数据类型的编码规范,苹果也给出了官方的建议及规范,同时也可以参考,在这里也就不详细展开,毕竟适配64位在当前应不算是问题。
  方法调用导致的变化
  基于32-bit的CPU和基于64-bit上的CPU有不同数量的寄存器,在方法调用上有不同的协议。因此32位和64位在汇编层级上是不同的。如果我们在程序中不使用汇编,调用协议很少会遇到。
  第三方库支持
  64位适配中其实最坑的是第三方库的支持,对于即时更新的第三方库还好(如AFNetworking,SDWebImage),但是对于一些更新较慢或者已经停止更新的Framework(如wax,作者已经停止维护),那就比较坑。当初在公司项目中,需要提前适配64位,记得当初就一直联系新浪微博SDK开发希望能够极早支持64位,我个人在公司中开发的LoginSDK组件也第一时间对64位给予了支持。
  (二) WWDC 2015
  WWDC 2015发布了三大平台的更新iOS 9、watch OS 2、OS X EL Capitan,同时发布了Apple Music。
  iOS 9发布
  主要更新以下亮点
  功能角度:
  1) Siri语音助手智能化,性能提升40%。
  2) Apple News新闻聚合App发布,但很遗憾中国内地被禁用。
  3) Wallet应用取代Passbook。
  4) iOS自带应用更新:引入Transit通勤路线功能、记事本可以云共享、carplay可自动连接、carplay可自动连接等。
  5) 续航优化,支持低功耗模式,平均续航能力可延长3个小时。
  6) 更新iOS 9剩余容量只需1.3GB,之前更新至少需要4GB以上。
  7)iPad引入双屏模式。
  技术角度
  1) 3D Touch
  目前支持3D Touch的设备只有 iPhone 6s 和 iPhone 6s Plus。
  Pressure Sensitivity:压力灵敏度,可以和绘画类及其它创作型软件结合使用,如根据压力的大小来改变笔触/画线的粗细值。主要为UITouch类增加了一些新属性,例如 estimatedProperties(触摸属性),updatedProperties(触摸对象更新)等,新增的API,主要集中在获取X/Y坐标时的精度部分,如 - PreciseLocationInView:,- PrecisePreviousLocationInView:等。需要特别注意的是UIForceTouchCapability,使用功能前,必须进行功能可用性检测。
  Peek and Pop:新引入的手势,主要可以让用户预览内容,甚至进行操作。
  Home Screen Quick Actions:快捷菜单,涉及API主要是:UIApplicationShortcutItem。ShortcutItem分了2种类型:静态 & 动态。其中静态方式在info.plist中进行配置;动态则通过UIApplicationShortcutItem等API进行动态配置处理。系统默认会优先展示静态的Actions。若App安装后从未打开时,则默认只会展示静态Actions。
  2) Search
  iOS 9中用户可以更容易搜索到他想要的内容(不管是在App还是在web上),增强了Search的功能,对应的技术点主要涉及3个API。
  NSUserActivity:NSUserAcitivity在介绍 iOS8 的 Handoff 时引入,iOS9 中允许对这些 activities 进行搜索。你可以提供元数据给这些 activities, 这意味着 Spotlight 可以索引这些内容。
  CoreSpotlight.framework:新增framework,提供了增、删、改、查等搜索API,可以索引App的内容。
  Web Markup:Web内容可被搜索。iOS 9支持灵活的通用无缝链接(universal links介绍),用户来你的网站或直接到您的应用程序,不管你是否已经安装了App。
  详细可以学习Apple Develop文档。
  3) Multitasking
  Slide Over
  iOS9 Slide Over
  Slide Over适用于iPad air以及iPad mini2以后的所有机型。iPad简单分屏功能,左侧原来的App占据屏幕的70%面积,右侧是30%,右侧App出来后进入活跃状态,左侧的App,所有基本活动将中断,但是并没有进入后台。
  Split View
  Slide Over和Split View可以互相转换,只要用户点击一下Slide Over界面旁边的白色竖条按钮。目前Split View只支持iPad中性能最高的iPad Air 2。两个app并列呈现在屏幕上,其中左侧的app是primary app,右侧的app是secondary app。用户可以滑动两个app之间的分界线,当分界线滑倒最左侧时,secondary app将变成primary app。
  iOS9 Split View
  Picture in picture(PiP)
  Pip允许你在退出App时,同时观看视频类的App,如下图所示:
  Pip涉及AVKit、AV Foundation或WebKit等相关框架类的视频播放接口。
  1) AVKit框架提供了 AVPlayerViewController 类,它会为用户自动显示画中画按钮。如果你使用AVKit 支持PiP功能,但要退出特定的画中画视频,请将播放器视图控制器的 allowsPictureInPicturePlayback 属性设置为NO。
  2)AVKit还提供了 AVPictureInPictureController 类,可以和AV Foundation 框架的 AVPlayerLayer 类一同使用。如果你想为视频播放提供自己的视图控制器和自定义用户界面,可使用这个方法。
  3)同时WebKit框架提供了 WKWebView 类,它支持iOS 9的PiP功能。如果你使用WebKit支持PiP功能,但要退出特定视频的画中画。设定关联webView 实例的allowsPictureInPictureMediaPlayback属性为NO。
  注意:如果你的App使用Media Player 框架播放视频,无论使用其框架中的MPMoviePlayerController或MPMoviePlayerViewController类,你必须迁移使用AVKit或AV Foundation。Media Player视频播放正式在iOS 9中弃用。
  在iOS9中Multitasking支持一下机型:
  iPad Multitasking支持机型
  详细Multitasking相关技术可参考Multitasking Apple Develop文档,
  或者CocoaChina上的Multitasking翻译文档。
  4) App thinning
  iOS App瘦身一直是开发者关注的问题,iOS 9推出了App thinnig,包括三部分功能:slicing、on-demand resources、bitcode。可让你的iPhone能够腾出更多的剩余空间,在应用升级过程中使用更少的数据。
  slicing
  如下图所示:
  slicing
  slicing可以对应用进行分割,根据用户设备类型和屏幕分辨率的不同分发定制化下载包,开发者只需要把完整应用包的内容上传到iTunes Connect即可。
  bitcode
  Bitcode是一个已编译程序的中间代码。如果你上传到iTunes Connect里的应用包含bitcode的话,就可以被编译和链接到App Store。加入Bitcode可以让苹果在未来对你的应用二进制文件进行再次优化,而不需要你向App Store提交新版本。
  注意:对于iOS,bitcode是可选的;对于watchOS,bitcode是必须的;而Mac OS是不支持bitcode。但是对于iOS App来说,如果你的App提供bitcode,那么App里的所有第三方框架都必须支持bitcode。我在公司内部开发的网易通行证LoginSDK登陆组件也第一时间支持了bitcode,在适配bitcode前请确定是否第三方库支持,否则需要寻求对应开发者的帮助。
  on-demand resources
  开发者可以把App初始化用不到的资源分类打包上传到AppStore,在用户使用的时候系统会根据资源标签在必要的时候调用资源,当某些资源不再使用的时候会被系统自动清除。如下图所示:
  on-demand resources
  下载和管理按需加载资源是由操作系统完成的。app使用NSBundleResourceRequest来:
  a) 请求获取按需加载资源。
  b) 通知操作系统某些资源不再使用。
  c) 更新下载的优先级。
  d) 追踪下载的进度。
  e) 检查存储空间不足的通知。
  当已下载的某些资源不再使用时,可以用NSBundle中的方法来设置保存优先级。
  详细on-demand resources介绍可以参考Apple Develop on-demand resources guide。
  7) 其它
  a) 新增3种的App Extension Points:Network、Safari、Spotlight。
  b) 新增Contacts Framework,与此同时废除AddressBookUI Framework。
  c) Watch Connectivity,由于watchOS 2的架构变化,需要这么一个东西来对iPhone和Watch进行双向通信。
  d) UIKit新增,如UIStackView。
  e) 新增Safari Services Framework。
  f) 游戏方面新增了更多的Api,涉及GameplayKit、Model I/O Framework、MetalKit三方框架。
  g) iOS 9.1新增UITouch对Apple Pencil API的支持,详细参考。
  7) 适配iOS9
  关于适配iOS 9就不一一展开介绍,主要涉及到以下几个点,详细可以参考Github iOS9适配详解
  a) 网络适配ATS:改用更安全的HTTPs。
  b) 更灵活的后台定位。
  c) 企业级分发,默认不能安装,需要在设置里点击“信任”。
  d) 适配Bitcode。
  e) URL Scheme 适配引入白名单概念,打开第三方App需要注册在URL中注册白名单。
  f) iOS9更改了字体,字体间隙变大导致 UI 显示异常。
  8) iOS 9.2发布。
  watchOS 2
  watchOS 2相对于上个版本做了很多改进。watchOS 2 的主要变化跟早期的 iPhone 差不多,那就是增加了本地化的 app。苹果向开发者提供了全新的 WatchKit,也就是说从 watchOS 2 开始,应用开发者可以基于 Apple Watch 开发一些应用,应用可以通过 API 调用数码表冠、麦克风甚至 Tapic Engine 等功能,应用获取的健康数据也可以直接在 Apple Watch 上进行处理,不需要再传输到 iPhone。如下图所示:
  watchOS 2架构演变
  同时watchOS 2新增了ClockKit Framework,可以将你的Watch App相关信息同时显示在表的钟面上。
  关于watchOS 2的更多介绍可以参考Apple Develop文档
  OS X EL Capitan
  OS X EL Capitan
  WWDC 2015同时发布了OS X EL Capitan版本。El Capitan从窗口管理、内置app和搜索等方面优化了Mac体验,并提升了性能,令启动和切换app、打开PDF文件以及访问电子邮件等日常事务都变得更加快速。
  关于OS X EL Capitan的技术点详细讲解也超出了本文的范围,详细可以参考Apple Develop文档。
  (三)Swift
  2015最让人兴奋的事之一莫过于Swift 2.0发布及Swift宣布开源,Swift社区及开源库也发展迅速。
  Swift 2.0
  WWDC 2015发布了Swift 2.0版本,苹果针对此门语言做了很多改进及抱有很多的期望,同时承诺年底前开放Swift的源码。
  Swift 2.0主要引入以下新特性:
  1) 增加guard语句。
  2) 增加异常处理机制。
  3) 协议可扩展。
  4) 打印语句的语法改变。
  5) 增加available检查。
  6) do-while语句重命名。
  7) 增加defer关键字。
  详细介绍可参考。
  Swift 3.0
  3.0版本将在2016年秋天发布。
  Swift 3.0承诺会保持 ABI(Application Binary Interface)的稳定性:成功保持 ABI 稳定性意味着,即便源代码语言发生了变化,用以后版本的 Swift 开发的应用程序和编译库能在二进制层次上和 Swift 3.0 版本的应用程序和编译库相互调用。
  1)Swift API优化,废弃冗长的Objective-C式风格。
  2)废弃函数柯里化声明(苹果认为柯里化声明语法太过复杂)。
  3)废弃var形式的行参。
  4)废弃++ & --运算符(C语言遗留)。5.废弃for-loops(C语言遗留)
  Swift开源
  号Swift宣布开源。苹果开源了Swift 三大库。
  1) Swift Complier & Standard Library(Swift编译器&基础库)
  编译器主要负责Swift的语法解析&语义分析,将Swift语言编译成高效可执行的机器代码,同时前端提供比如Swift语法高亮,代码自动补全等一些便捷的工具(想读懂这块源码要有编译器的基础知识,词法分析、语法分析......)。Swift基础库主要包括各种数据类型,如基础类型、协议、方法、集合及集合所遵循的协议和操作数据类型的基础算法。Swift的基础库底层是以Swift来实现的,更多的功能细分可以参考Swift官方博客-编译器&基础库基本介绍。
  2) Swift Package Manger(Swift包管理器)
  Swift主要是用来管理和共享Swift代码的工具,与Swift build system协调来自动处理Swift的下载,链接及依赖处理。 ( max howell 与mattt参与开发,mattt竟然跳槽去了苹果)。同时苹果官方也给出了一个 demo来教你怎样写一个Library Package,同时处理各个Packages之间的依赖(demo :example-package-dealer ,感兴趣的同学可以动手写下)。
  3) Swift Core Library(Swift核心库)
  Swift核心库提供了比基础库更高级的功能,基于 Swift 标准库。这些库提供的函数有:定位,网络,多线程,单元测试,数据持久化,文件系统访问,用户参数等功能。Swift核心库的功能将会在Swift 3.0发布,个人预计Swift 3.0将会在2016 WWDC发布。目前核心库开源了三个库Foundation、libdispatch(GCD)、XCTest(单元测试框架),这三大框架也将会随3.0发布,目前处在早期开发阶段。
  (四)tvOS
  Apple TV在国内没有销售,随着近年Apple TV新品的发布,全新的第四代Apple TV 采用A8 芯片,性能更胜以往,因此开发者可为电视打造引人入胜的游戏和定制内容的 app。同时,Apple也发布了tvOS系统,该系统也是基于iOS系统,也内置了App Store。国外Netflix、HBO、Hulu等视频平台均已推出根据tvOS重新制作了对应版本的app,
  同时在开源社区上许多开源组件也对tvOS给予了支持。
  详细的tvOS开发文档参考
  及tvOS human-interface-guidelines
  如AFNetworking支持iOS, OS X, watchOS, and tvOS全平台。
  未来关于Apple TV在国内的销售仍然不明,不过个人对tvOS的发展还是很看好的。
  (五)XCodeGhost
  2015令人值得关注的一件事是XCodeGhost,同时也给iOS开发者对于App安全敲响了警钟。
  Xcode Ghost是通过Xcode注入,于2015年9月被发现。它的初始传播途径主要是通过非官方下载的 Xcode 传播,通过 CoreService 库文件进行感染。当应用开发者使用带毒的Xcode工作时,编译出的App 都将被注入病毒代码,从而产生众多带毒APP。用户在iOS设备上安装了被感染的APP后,设备在接入互联网时APP会回连恶意URL地址init.,并向该URL上传敏感信息(如设备型号、iOS 版本)。
  苹果第一时间也对感染XCodeGhost的App下架,
  阿里工程师也针对XCodeGhost做了逆向分析,可以参考XCodeGhost逆向分析。
  (六)开源项目
  React Native
  Learn once, write anywhere。Facebook 在 React.js Conf 2015 大会上推出了基于 Java 的开源框架 React Native。React Native 结合了 Web 应用和 Native 应用的优势,可以使用 Java 来开发 iOS 和 Android 原生应用。在 Java 中用 React 抽象操作系统原生的 UI 组件,代替 DOM 元素来渲染等。
  React Native 使你能够使用基于 Java 和 React 一致的开发体验在本地平台上构建世界一流的应用程序体验。React Native 把重点放在所有开发人员关心的平台的开发效率上――开发者只需学习一种语言就能轻易为任何平台高效地编写代码。Facebook 在多个应用程序产品中使用了 React Native,并将继续为 React Native 投资。
  JSPatch
  JSPatch 只需要在项目里引入极小的引擎文件,就可以使用 Java 调用任何 Objective-C 的原生接口,替换任意 Objective-C 原生方法。目前主要用于下发 JS 脚本替换原生 Objective-C 代码,实时修复线上 bug。详细的JSPatch原理可以参考。
  1)Kingfisher
  是一个异步下载和缓存图片的库,SDWebImage的Swift 实现版。
  2)Perfect
  Swift的跨平台能力值得关注,Perfect 是一个使用Swift编程语言开发Web和其他REST服务的框架,其主要目标是简化需要后端服务器软件的移动应用的开发,使开发人员可以使用同一种语言进行客户端和服务端开发。
  3)更多...
  AFNetworking 3.0
  AFNetworking在3.0版本中删除了基于 NSURLConnectionAPI的所有支持。如果你的项目以前使用过这些API,建议您立即升级到基于 NSURLSession 的API的AFNetworking的版本。
  YYKit 是一组庞大、功能丰富的 iOS 组件。
  为了尽量复用代码,这个项目中的某些组件之间有比较强的依赖关系。包含以下组件:
  YYModel ― 高性能的 iOS JSON 模型框架。
  YYCache ― 高性能的 iOS 缓存框架。
  YYImage ― 功能强大的 iOS 图像框架。
  YYWebImage ― 高性能的 iOS 异步图像加载框架。
  YYText ― 功能强大的 iOS 富文本框架。
  YYKeyboardManager ― iOS 键盘监听管理工具。
  YYDispatchQueuePool ― iOS 全局并发队列管理工具。
  YYAsyncLayer ― iOS 异步绘制与显示的工具。
  YYCategories ― 功能丰富的 Category 类型工具库。
  (七) 更多其他技术点
  后面几点展开太多,也是移动开发中值得关注的永恒主题,在此就不一一列举,欢迎补充~。
  移动架构
  跨平台
  数据持久化
  App性能优化
  APP瘦身
  页面布局
  动效开发
  蓝鸥iOS开发,国内口碑最好的,我们是 一群热爱IT的年轻人,如果你也爱IT、爱iOS开发,欢迎前来蓝鸥参观学习,让我们共同为梦想发声。详情请咨询官方网站。
欢迎举报抄袭、转载、暴力色情及含有欺诈和虚假信息的不良文章。
请先登录再操作
请先登录再操作
微信扫一扫分享至朋友圈
搜狐公众平台官方账号
生活时尚&搭配博主 /生活时尚自媒体 /时尚类书籍作者
搜狐网教育频道官方账号
全球最大华文占星网站-专业研究星座命理及测算服务机构
培养iOS高级工程师、html5高级工程师及拥有自主研发的...
主演:黄晓明/陈乔恩/乔任梁/谢君豪/吕佳容/戚迹
主演:陈晓/陈妍希/张馨予/杨明娜/毛晓彤/孙耀琦
主演:陈键锋/李依晓/张迪/郑亦桐/张明明/何彦霓
主演:尚格?云顿/乔?弗拉尼甘/Bianca Bree
主演:艾斯?库珀/ 查宁?塔图姆/ 乔纳?希尔
baby14岁写真曝光
李冰冰向成龙撒娇争宠
李湘遭闺蜜曝光旧爱
美女模特教老板走秀
曝搬砖男神奇葩择偶观
柳岩被迫成赚钱工具
大屁小P虐心恋
匆匆那年大结局
乔杉遭粉丝骚扰
男闺蜜的尴尬初夜
客服热线:86-10-
客服邮箱:}

我要回帖

更多关于 ios sdwebimage 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信