KVO 作为 iOS 中一种强大并且有效的机制,为 iOS 开发者们提供了很多的便利;我们可以使用 KVO 来检测对象属性的变化、快速做出响应,这能够为我们在开发强交互、响应式应用以及实现视图和模型的双向绑定时提供大量的帮助。 但是在大多数情况下,除非遇到不用 KVO 无法解决…
科普片 1、DNS劫持的危害 不知道大家有没有发现这样一个现象,在打开一些网页的时候会弹出一些与所浏览网页不相关的内容比如这样奇(se)怪(qing)的东西图一或者这样图二,其实造成这样的原因就是DNS劫持,在我们正常浏览的网页链接里面被恶意插入一些奇怪的东西。不止是这些,DN…
转自我的 Blog: Danny's Dream 接着上篇文章,在一个交流群里有个小伙伴问,怎么实现支付宝类似收到钱之后的语音播放效果。 结合着之前对推送的研究,想到了两种实现方案: 1.在 notification 的 extension 中将收到的内容播放出来。 2.将文字…
ios 开发中经常会依赖 framework 和. a 文件,这两种文件有什么区别呢?今天就聊聊这两种文件格式。 动态库与静态库 在说 framework 和. a 文件之前,先明确一下什么是静态库,什么是动态库。 静态库 静态库即静态链接库。静态库在编译的时候会被直接拷贝一份,复制到目标程序里…
简介 iOS 10 中新增的通知服务扩展功能,在推送通知展示到界面之前提供开发者可以在后台对推送的内容进行修改。通过这个修改主要可以实现以下的几个需求: 如果推送的内容加密的,可以在客户端进行解密。 可以下载图片,音乐,视频,实现多媒体推送的效果。 可以修改推送的内容,body…
就在上个月中旬,技术老大让我招两个1-2年的iOS开发,把简历的筛选和第一轮技术面试的任务交给了我。 从筛选第一份简历,准备面试题,到成功招到两个人一共花了两个星期多一点,总体来说还是比较顺利的。两位通过者都比较稳重踏实,而且对技术也比较有追求。这也可能和我筛选简历比较谨慎有关…
作者介绍:李运锋,美团点评iOS工程师,5年iOS开发经验,现在是美团点评点餐团队的一员。 前言 本文较长(5000字左右),建议阅读时间: 20min+ 一个iOS App的稳定性,主要决定于整体的系统架构设计,同时也不可忽略编程的细节,正所谓“千里之堤,溃于蚁穴”,一旦考虑…
bk 之前使用编译器调试的时候,每次只是用常规的几个调试命令。但是本着折腾的原则,今天把 所有的调试命令 及功能都罗列出来。 语歌 博客 速览表在最后: 下面举例常见比较重要的命令: 再下面有更详细的示范 如果想要了解更多编译器调试的命令: 传送门 接下来看一下常用的调试命令用法…
【引言】iOS10 推送部分的 API,大量使用了 CompletionHandler 这种命名方式,那么本文我们将对比下这种 Block 的特殊性,以便更好的理解和在自己的项目中实践 CompletionHandler 样式的 Blcok。
CoreAnimation是一套图像渲染和动画基础框架,其在iOS和OSX平台用于显示对象和实现动画效果。使用CoreAnimation框架,动画的大部分帧渲染都是苹果为我们做好的。我们只需要配置几个动画参数(如开始和结束的点)并调用动画开始的方法。接下来就把剩余的工作交给Co…
[[贝聊科技] iOS 终极横竖屏切换解决方案](
大家的项目都是只支持竖屏的吧?大多数朋友(这其中当然也包括博主),都没有做过横屏开发,这次项目刚好有这个需求,因此把横竖屏相关的心得写成一遍文章供诸位参考。 01.综述 大多数公司的项目都只支持竖屏,只有一两个界面需要同时支持横屏,就像视频 APP 一样,只有视频播放的时候需要…
文章分享至我的个人技术博客: UserNotifications Notification 在 iOS 以来发展以来都是一个非常重要的功能之一, 各类 App 都需要通过通知来推送消息, 不然怎么告…
当添加 input 和 output 到 session 中时,session 会自动建立起一个连接(AVCaptureConnection)。我们可以使用这个 connection 来设置从 input 或者 从 output 得到的数据的有效性,也可以用来监控在音频信道中功…
本文主要跟大家分享iOS攻城狮比较感兴趣的知识点runtime。示例代码在这里:WHRuntimeDemo 读完并理解这篇文章之后,你将掌握下面这几个问题的答案。 runtime:Objective-C是动态语言,它将很多静态语言在编译和链接时做的事放到了运行时,这个运行时系统…
首先我不是故意要做标题党的,也不是我要炒冷饭,我只是想换个姿势看多线程,本文大部分内容在分析如何造死锁,奈何功力尚浅,然而再浅,也需要走出第一步。打开你的 Xcode 来验证这些死锁吧。 NSLock是基于 POSIX threads 实现的,而 POSIX threads 中…
我们想要做一点努力 iOS 的入门资料在互联网上可以用泛滥来形容。如果你有计算机基础,想快速学习 iOS,做几个界面很轻易就能做到。然而移动创业热潮退去后,对 iOS 开发者的能力要求也越来越高。当一个已经入门的开发者,想要成为一个更好的 iOS 开发者的时候,就会发现互联网的…
今天下午去面试去面试一家初创公司,然后又接到到了丁香园的电话面试,这篇blog记录一下面试的一些问题,有的回答的还行,有点感觉不太好,主要是有些英文单词说的太low了估计被鄙视了吧,下面给大家总结一下面试的一些问题,有些回答是摘要一些大神blog的出处,都有给原链接,希望见谅~…
- 简介 RunLoop从字面上解析,就是一直循环的跑,实际上它也是在一直在跑。通常来说,一个线程执行完一个任务后,线程就会退出销毁。但是我们可以通过RunLoop操作,使该线程常驻,在有任务的时候唤醒线程执行相应的任务,在没有任务执行的时候保存睡眠状态,时刻准备着任务的呼唤。…
CocoaPods 可以说是 iOS 开发应用最广泛的包管理工具,本篇文章主要介绍 CocoaPods 的第三方库是怎样从网络集成到我们本地的项目当中,也是制作私有库、开源库和 iOS 项目组件化的一个知识铺垫。 其中 git 字段表示该框架的托管地址,也就是上面时序图中的 远…
首先创建一个UIView的分类,下面是头文件中的代码。 在block中触发view的点击事件,主要运用的是关联对象技巧,比较实用。