本文介绍了 Xcode 8 的新出的多线程调试工具 Thread Sanitizer,可以在 app 运行时发现线程竞态. 想想一下,你的 app 已经近乎大功告成:它经过精良的打磨,单元测试全覆盖.只剩下一个问题:有一个很严重的 bug,但是是偶发的,你已经花了好几个小时尝试修复它却一无所获.问题到底出在哪里呀? 这种情况经常是多个线程访问同一块内存造成的.我可以大胆猜测,多线程的 bug 是许多程序员的梦魇.这类 bug 非常难定位,而且只有特定条件下才能重现:所以找出问题的原因确实困难重重…
iOS 10 最重要的变化可能就是通知 API 的重构了.本文用一个简单闹钟的例子介绍了 User Notification 的 API 变化和新功能. 简介 很久以前,开发者就可以在 iOS 里预约本地通知了,但是之前的 API 缺乏细粒度的控制能力.幸运的是,苹果在 iOS 10 中改善了这一点,发布了新的 UserNotifications 框架.这个框架在处理本地通知及远程推送方面的 API 丰富了许多,同时写法更加简便. 本地通知(local notification)是用 app 来…
续上篇,在简单闹钟的例子上,在通知界面上显示图片动画,并用通知关联的按钮更新通知界面.介绍 iOS 10 通知 API 的扩展:自定义通知显示界面. 新框架可以统一处理本地通知和远程推送,同时增加了一些新 API 来控制等待中和已发出的通知. 以上这些都很棒,不过苹果还在通知方面更进一步,让开发者能添加一个自定义的通知界面,用户收到通知之后可以选择查看这个自定义界面.要实现这个功能,需要添加一个单独的 UserNotificationsUI 框架.这个框架的 API 特别简单,只含有一个公共的…
苹果官方的 Messages 在 iOS 10 推出了非常重大的更新,可能主要是想从其他 IM 巨头手里抢点市场份额回来,包括 Facebook Messenger, Wechat 和 Snapchat. 一个重要的新功能是,用户可以直接在 Messages 里使用第三方开发者开发的扩展插件了.这个功能是在 iOS 8 引入的 Extension 技术基础上实现的,可以参考我们往年系列里 Sam Davies 写的文章.Messages 插件的一大好处是,它是可以独立于 app 存在的,不用跟父…
曾经的黑暗年代 用基于 block 的 UIView animation 来编写 view 属性(frame, transform 等等)变化的动画非常简单.只需要短短几行代码: view.alpha = 1 UIView.animate(withDuration: 2) { containerView.alpha = 0 } 你可以指定动画结束之后调用的 completion block.如果默认的匀速动画不能满足你的要求,还可以调整时间曲线. 但是,如果你需要一种自定义的曲线动画,相应的属性…
9 月底,苹果正式在北京成立了苹果中国研发中心.近几年,我们也在每年更新的 iOS 系统中不断看到,苹果对中国市场的关照.从早前的九宫格输入法,到最近的骚扰电话拦截,都照顾了国内用户的需求. 在 iOS 10 中,除了 骚扰电话识别和拦截 功能的加入,苹果其实还专为国行 iPhone 制定了一个「联网权限」功能1. 它是什么 相信已有不少人早就注意到这个功能.毕竟在 iOS 10 中,每当你打开一个新安装的 App 时,应用除了可能会弹出请求授权访问相册.推送通知.获取定位这些熟悉的权限之外,还…
1.常用的用法(windows) tcp -w 10 -t -d -i 5 -j --color 81.156.165.66 443 2. http模式 -u,与-h命令连用,每一行输出目标的url  destination,可以是DNS地址.IP地址.URL(需要使用-h,http模式).使用http模式时,不要加https//或:port,例如:tcping http://www.elifulkerson.com:8080/index.html就会失败,使用tcping www.eliful…
英文:shinobicontrols 译文:戴仓薯 链接:http://www.jianshu.com/p/4244cf130478 [iOS 10 day by day] Day 1:开发 iMessage 的第三方插件 [iOS 10 day by day] Day 2:线程竞态检测工具 Thread Sanitizer <iOS 10 day by day>是 shinobicontrols 公司编写的系列博客,介绍开发者需要了解的 iOS 10 新特性,每周更新.本系列翻译(文集地址)…
本文介绍了 iOS 10 的一个重要更新:Messages 应用支持第三方插件了.作者用一个小游戏作为例子,说明了插件开发从建工程开始,到绘制界面.收发消息的全过程. <iOS 10 day by day>是 shinobicontrols 公司编写的系列博客,介绍开发者需要了解的 iOS 10 新特性,每周更新.本系列翻译(文集地址)已取得官方授权.仓薯翻译,欢迎指正:) Shinobicontrols 为 iOS 和 Android 开发者提供高性能.响应式的 UI 控件 SDK,尤其是图…
在2016WWDC大会上,Apple公司介绍了一个很好的语音识别的API,那就是Speech framework.事实上,这个Speech Kit就是Siri用来做语音识别的框架.如今已经有一些可用的语音识别框架,但是它们要么太贵要么不好.在今天的教程里面,我会教你怎样创建一个使用Speech Kit来进行语音转文字的类似Siri的app. 设计App UI 前提:你需要Xcode 8 beta版本和一个运行iOS 10 beta系统版本的iOS 设备.先从创建一个新的命名为SpeechToTe…