是 iOS 平台的自动内存泄漏检测工具,信鸽提供及时、高效、精准的消息推送服务

摘要Swift
最新的主要版本提供了针对语言本身以及标准库的大量改动和更新,最重要的变化包括新增的
String 功能、扩展集合、归档和序列化等。Swift
最新的主要版本提供了针对语言本身以及标准库的大量改动和更新,最重要的变化包括新增的
String 功能、扩展集合、归档和序列化等。Swift 4 中,String 已全面遵循
Collection
协议,因此可直接迭代并提供了集合与序列类似的全部条件,例如:for c in
myString { print(c)}myString.filter { c in return boolCheck(c)}let l =
myString.countlet myString2 = myString.dropFirst()此外 String
切片现已成为下标(Substring)类型的实例,遵循 StringProtocol,可按照与
String 类型完全一致的方式使用。这一改动有助于改善切片性能,因为
Substring 已经不再需要复制 String 切片。复制操作可延迟至 Substring
转换为 String 并被某些 API 使用的时候进行。String 的其他功能还包括:支持
Unicode 9 以及多行 Literal。Swift 4
还改进了用户创建、使用和管理集合类型的方式,例如 Dictionary 和
Set。首先,用户现在已经可以通过元祖(Tuple)序列创建字典,并指定如果遇到重复内容后的处理方式,而这一操作可在创建字典或合并两个字典的过程中进行:let
items = [“ItemA”, “ItemB”, “ItemC”, “ItemA”]let prices = [14.40,
41.63, 3.71, 15.63]let catalog1 = Dictionary(uniqueKeysWithValues:
zip(items, prices))let catalog2 = Dictionary(prices, uniquingKeysWith: {
(l, r) in l })let catalog3 = Dictionary(prices, uniquingKeysWith: { (l,
r) in l + r })let merged = catalog.merge(catalog3) { (l, r) in r
}Dictionary 和 Set 现在可以筛选成为原始类型的另一个对象,而不再筛选为
Array。此外字典也已经可以支持新的 mapValues 方法:let catalog4 =
catalog.filter { $0.value < 15.0 }let catalog5 = catalog.mapValues {
$0 * 1.2
}关于字典还有一个实用的改进:在访问其元素时可以指定默认值,这样便可让下标运算符返回
Non-opt 类型:let price1 : Float = catalog[‘none’, default: 0.0]let
price2 : Float? = catalog[‘none’]Swift 4 中所有 Collection
类型均支持泛型下标(Generic subscript)。这意味着我们可以定义下列 JSON
结构,不将索引的结果抛给字典:struct JSON { init(dictionary:
[String:Any]) { … } subscript(key: String) -> T? { … }}let json
= …let result: String? =
json[‘item’]对于该语言还有一个广受好评的改进:对归档和序列化的支持,以前这需要通过
NSObject 和 NSCoding 处理,无法用于 struct 和 enum 类型。但 Swift 4 通过
Codable 协议增加了对所有类型的序列化支持。Ole Begemann 对 Swift 4
的编码和解码提供了入门简介。例如我们可以这样定义一个 Codable
类型:struct Card: Codable, Equatable { enum Suit: String, Codable {
case clubs, spades, hearts, diamonds } enum Rank: Int, Codable { case
two = 2, three, four, five, six, seven, eight, nine, ten, jack, queen,
king, ace } var suit: Suit var rank: Rank static func ==(lhs: Card, rhs:
Card) -> Bool { return lhs.suit == rhs.suit && lhs.rank == rhs.rank
}}let hand = [Card(suit: .clubs, rank: .ace), Card(suit: .hearts, rank:
.queen最后,Swift 4 提供了两种语言模式,可通过 -swift-version
编译器选项进行选择。在 Swift 3.2 模式中,编译器可接受大部分使用 Swift
3.x 编译器编译的源代码。在该模式下,大部分 Swift 4
语言功能均可用,但针对之前已有 API 的各种更新均不可用。在 Swift 4.0
模式中,我们可以使用 Swift 4
的全部功能,但可能需要改动部分源代码,这一过程通常可通过 Xcode
的迁移助理实现。 Swift 4 还有很多改进,建议阅读 Swift 维护者 Ted
Kremenek 的公告,并通过 Ole Begemann 在交互式 Playground
中提供的所有新功能演示来体验。Swift 4 已包含在 Xcode 9
中,并可手工安装到 Xcode 8.3 中使用。

摘要腾讯今日开源了业界首创iOS自动内存泄露检测工具MLeaksFinder,MLeaksFinder
是 iOS 平台的自动内存泄漏检测工具,引进 MLeaksFinder
后,就可以在日常的开发,调试业务逻辑的过程中自动地发现并警告内存泄漏。前言腾讯今日开源了业界首创iOS自动内存泄露检测工具MLeaksFinder,MLeaksFinder
是 iOS 平台的自动内存泄漏检测工具,引进 MLeaksFinder
后,就可以在日常的开发,调试业务逻辑的过程中自动地发现并警告内存泄漏。MLeaksFinder简介MLeaksFinder
是 iOS 平台的自动内存泄漏检测工具,引进 MLeaksFinder
后,就可以在日常的开发,调试业务逻辑的过程中自动地发现并警告内存泄漏。开发者无需打开
instrument
等工具,也无需为了找内存泄漏而去跑额外的流程。并且,由于开发者是在修改代码之后一跑业务逻辑就能发现内存泄漏的,这使得开发者能很快地意识到是哪里的代码写得问题。这种及时的内存泄漏的发现在很大的程度上降低了修复内存泄漏的成本。特性介绍自动检测内存泄漏和释放不及时的场景构建泄漏对象相对于
ViewContrller
的引用链以帮助开发者定位问题不侵入业务逻辑,引入即生效,无需修改任何代码或引入头文件工程主页和源码地址团队博客:

摘要2017年12月15日上周五,在刚刚结束的“2017中国大数据产业年会”上,腾讯移动推送(信鸽)荣获“金创奖-最佳大数据应用奖”。基本内容“2017中国大数据产业年会”由新华网、中国信息通信研究院、中国社科院信息化研究中心主办,在北京唐拉雅秀酒店举行。本届大会以“大数据助力中国新经济”为主题,汇聚了大数据行业的各个“产学研”大咖,共同探讨数据产业前沿课题,应对“大数据+”带来的机遇与挑战。腾讯移动推送-信鸽(下文简称为信鸽)以其过硬的技术实力、完善的数据分析功能以及在大数据领域创新应用获得评委的高度好评,并最终斩获最佳大数据应用奖。腾讯信鸽的定位腾讯信鸽是国内领先的消息推送服务厂商。依托腾讯多年的海量数据解决方案经验,以及业内领先的技术能力,信鸽提供及时、高效、精准的消息推送服务,能够实现每秒百万级推送量,领先业界平均水准数倍。从成立之日起,信鸽就致力于为移动开发者提供最优质的服务,减轻不必要的开发成本,让开发者专注于核心功能。为了给开发者更方便快捷的服务,信鸽整合了腾讯内部优质技术资源与多年数据运营经验,提供一站式的消息推送解决方案。腾讯信鸽的技术优势针对用户需求,信鸽进行了多轮的技术优化。在海量数据的压力下,信鸽从硬件、操作系统、协议栈、架构等多角度挖掘单机性能,提高设备资源利用率,实现了后台推送速度提升100%以上,实现了亿级推送10分钟内完成,有效支持用户业务需求。此外,依托信鸽强大的设备覆盖能力,提出了业内独创的双Service保活机制,能够帮助开发者触达近乎全量的用户,大大提升推送的抵达率。用户接入信鸽之后,推送抵达量平均提升5%以上。另外,信鸽还提供多种灵活的推送方式,结合数百种多样化、精准的用户标签,对不同的用户群推送不同的内容。数据表明,使用精准标签推送的用户打开率是全量推送的4倍。腾讯移动推送(信鸽)官网信鸽官网:

相关文章