速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

iOS 开发周报:Apple 迎来 40 岁生日,iOS 更新 9.3.1 修复 Safari 链接问题

  • 2016-04-04
  • 本文字数:1562 字

    阅读完需:约 5 分钟

新闻

  1. Apple 公司于 4 月 1 日迎来 40 岁生日:1976 年 4 月 1 日,乔布斯和沃兹尼亚克在 Los Altos 乔布斯家的车库中创立了苹果公司。从 Apple I 和 Apple II 的成功开始,Apple 经历了低谷和回归,并开创了像是个人电脑和移动互联网的新时代。这篇新闻帮助我们总结回顾了这 40 年来 Apple 所发布的产品和变化,对历史感兴趣的开发者可以看看 Apple 是如何一步一步走到今天的。
  2. iOS 更新 9.3.1 修复 Safari 链接问题:iOS 9.3 于上周发布,为我们带来了 Night Shift 和备忘录 Touch ID 等改进。而不幸的是,很多用户发现了升级 iOS 9.3 后 Safari 和其他一些 app 中的 Universal Link 失效的问题,Apple 迅速做出了对应并发布了新的修正版本 iOS 9.3.1 来解决这个问题。

教程

  1. Swift Runtime 分析:还像 OC Runtime 一样吗?: 一篇对 Swift 运行时进行探索和分析的文章,Swift 的运行时和 Objective-C 的运行时是有所不同的,但是 Swift 代码也有可能使用到 Objective-C 的运行时特性。本文对两种运行时进行了一些对比和区分,并对两者的动态特性的使用进行了介绍。
  2. iOS 冰与火之歌 – 利用 XPC 过 App 沙盒:XPC 是 OS X 上进程间通讯的常用手段,而在 iOS 中虽然第三方开发者不允许直接使用 XPC,但是这项技术还是存在于 iOS 系统之中的,这篇文章简单介绍了在 iOS 上利用 XPC 与系统进程通讯并突破沙盒的技术要点。
  3. Breaking Swift with reference counted structs :Swift 是一门自动内存管理的语言,但是其背后机制其实还是引用计数。对于熟悉 Objective-C 的开发者来说,最大的区别在于 Swift 中对值类型的使用非常多,而值类型并不在堆上进行内存分配,自然也就没有引用计数的问题。但是如果你在值类型中包含持有了引用类型,背后将会发生一些隐式的复制和持有,将导致内存泄露。这篇文章举了一个这方面的例子,并进行了一些探索。
  4. Surprises with Swift Extensions :Swift 的 extension 为我们提供了非常多的方便,虽然 Swift 本身是以 module 的方式对不同框架的代码进行了隔离,但是向 UIKit 的类型添加 extension 时,我们仍然需要为其添加前缀。不过,使用 @objc(prefix\_name) 可以在保持 Swift 代码名字优雅的前提下,只向 Objective-C 运行时暴露合适的方法名,不失为一种好方法。这篇文章讲述了一个调试的例子,并简单解释了 Swift Extension 的一些限制。

开源项目

  1. Crayons :帮助在 Xcode 的 Interface Builder 中定义一个项目专用的颜色盘的插件。这个插件通过读取项目中特定文件中定义的颜色,将其以调色盘显示在 Interface Builder 里,方便你在 IB 中构建界面时直接点取使用。如果你通常是使用 IB 来制作 UI 的话,这会是十分方便的功能。
  2. WKZombie :由 Swift 编写的一个无界面浏览器框架,它非常适合用来解析网页内容,并进行一些自动化操作。像是获取网页内容值,提交表单等等自然不在话下。如果你需要在应用中实现一些类似简单爬虫或者网页自动化的流程,或是为你的网站编写测试,那使用这个框架会让你事半功倍。
  3. Gifu :一个轻量级的 GIF 动画框架,它采用了利用 CADisplayLink 绑定帧动画,并逐帧解析和加载的方式,来处理体积较大的 GIF 文件。如果你的应用中恰好有显示大 GIF 文件的需求,那这个框架会是一个可选项。
  4. UIImageColors :从一张 UIImage 图片中提取出主色调的框架。将 cell 的背景颜色设置为与其中图片的主色调一致的颜色来增强用户体验和区分不同 cell 的内容,是在 Apple 现在的 iTunes 应用上常见的表现手段。利用该框架,你可以简单地运用将这种设计手法进行设计,而且框架中还提供了一系列配套的辅助方法以帮助你简化构建这种高对比度 cell。

感谢徐川对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2016-04-04 19:001446
用户头像

发布了 59 篇内容, 共 21.1 次阅读, 收获喜欢 4 次。

关注

评论

发布
暂无评论
发现更多内容

vue为什么v-for的优先级比v-if的高?

bb_xiaxia1998

Vue

SpringBoot 接口层统一加密解密

小小怪下士

Java 程序员 springboot

云安全系列3:如何构建云安全策略

HummerCloud

云计算 数据安全 云安全 11月月更

详解Native Memory Tracking之追踪区域分析

华为云开发者联盟

开发 内存 华为云

Go类型转换和类型断言可别搞混了

王中阳Go

golang 高效工作 学习方法 面试题 11月月更

高频js手写题之实现数组扁平化、深拷贝、总线模式

helloworld1024fd

JavaScript

「Go易错集锦」如何正确设置枚举中的零值

Go学堂

golang 程序员 个人成长 枚举 11月月更

《关键信息基础设施安全保护要求》于明年五月正式实施

行云管家

网络安全

记一场vue面试

bb_xiaxia1998

Vue

掌握这些前端手写面试题能进大厂吗

helloworld1024fd

JavaScript

年搜索量超7亿次背后:这款APP用火山引擎 DataTester 完成“数据驱动”

字节跳动数据平台

大数据 数据分析 A/B测试

Fiori Elements 应用进行二次开发的一个具体案例分享

汪子熙

SAP Fiori ui5 Web应用 11月月更

阿里云架构师张先国:揭秘ECS倚天实例背后的技术

云布道师

算力 云栖大会 倚天实例

DDD与应用架构

胖子笑西风

架构 DDD 框架 整洁架构 Java core

前端面试被问到的js手写面试题汇总

helloworld1024fd

JavaScript

react源码中的协调与调度

flyzz177

React

react源码中的fiber架构

flyzz177

React

GaussDB CN服务异常实例分析

华为云开发者联盟

数据库 华为云 GaussDB

浅谈深度学习中的概率

华为云开发者联盟

人工智能 华为云

【专项测试系列】-缓存击穿、穿透、雪崩专项测试

京东科技开发者

缓存 测试 缓存穿透 缓存击穿 缓存雪崩

全国独家 | 上海线下面授大规模敏捷LeSS认证 | 2022年12月8-10日

ShineScrum

less 大规模敏捷 LeSS认证 吕毅老师

注意 ! !|95% 的应用程序中发现错误配置和漏洞

SEAL安全

配置管理 软件供应链安全 漏洞管理

《全国一体化政务大数据体系建设指南》发布,隐私计算将如何发挥作用?

洞见科技

CQRS与Event Sourcing

胖子笑西风

架构 DDD CQRS Event Sourcing #java

腾讯二面vue面试题总结

bb_xiaxia1998

Vue

面试官:请实现Javascript发布-订阅模式

helloworld1024fd

JavaScript

阿里Redis最全面试全攻略,读完这个就可以和阿里面试官好好聊聊

钟奕礼

Java java程序员 java面试 java编程

谈谈前端应用里图标(Icon)的渲染和内容提取方式

汪子熙

前端开发 SAP ui5 Web应用 11月月更

PGL图学习之图神经网络GNN模型GCN、GAT[系列六]

汀丶人工智能

图神经网络 11月月更

Kata3.0.0 x LifseaOS x 龙蜥内核三管齐下!带你体验最新的安全容器之旅

OpenAnolis小助手

容器 云原生 内核 龙蜥社区 袋鼠RunD

react源码中的hooks

flyzz177

React

iOS开发周报:Apple 迎来 40 岁生日,iOS 更新 9.3.1 修复 Safari 链接问题_移动_王巍_InfoQ精选文章