2015 年 WWDC,苹果第一次提出了 Swift 的面向协议编程(Protocol Oriented Programming,以下简称 POP ),这是计算机历史上一个全新的编程范式。在此之前,相对应的面向对象的编程(Object Oriented Programming,以下简称 OOP )已经大行其道 50 年,它几乎完美的解决函数式编程(Functional Programming)的缺点,并且出现在从大型系统到小型应用、从服务器端到前端的各个方面。它的优点被无数程序员称颂,它解决了诸多开发中的大小问题。那么问题来了,既然 OOP 如此万能,为什么 Swift 要弄出全新的 POP ?
曾在 Crashlytics 和苹果工作的 Swift 开发者 Matt Massicotte 最近发布了一个 Github 代码库,收集了许多有用的技巧,便于更轻松地使用 Swift 并发性和解决经常出现的问题,同时提到了人们可能容易掉入的常见陷阱。
OSS(Object Storage Service)俗称对象存储,主要提供图片、文档、音频、视频等二进制文件的海量存储功能。目前除了公有云提供对象存储服务外,一般私有云比较关心一些开源的分布式对象存储解决方案,本文列举了一些常见的技术方案供参考。
OpenStack的存储组件—Cinder和Swift—让你在你的私有云里构建块和对象的存储系统。Chris Evans对这些技术给出了一些深入的阐述。 在向web规模计算的转型中,虚拟化,x86架构的迁移和DevOps的快速应用这样的关键技术已经转变了整个IT的生态系统。随着部署到IT的系统数量的持续增大,下一个挑战将变成以更有效和高效的方式来编排和管理计算,存储和网络资源,为私有云提供服务。 OpenStack是一个开源的云计算平台项目,最初是由NASA和Rackspace Hosting在2010年联
本期是 Swift 编辑组自主整理周报的第五十四期,每个模块已初步成型。各位读者如果有好的提议,欢迎在文末留言。
本期是 Swift 编辑组自主整理周报的第五十三期,每个模块已初步成型。各位读者如果有好的提议,欢迎在文末留言。
Swift 中的泛型语法是为了类型通用性设计,这种通用性允许在函数输入和输出时,使用复杂的类型集合来表达,前提是类型必须前后一致。例如下面这个例子是从两个序列构建一个数组:
2017年推出的 Codable 无疑是 Swift 的一大飞跃。尽管当时社区已经构建了多种用于本地 Swift 值和 JSON 之间 的编解码工具,但由于 Codable 与 Swift 编译器本身的集成,提供了前所未有的便利性,使我们能够通过使可解码类型遵守 Decodable 协议来定义可解码类型,例如:
Swift最强大的功能之一就是能够同时扩展整个数据类型。 这被称为协议扩展,它们通常用于在大型应用程序中构建灵活性。
这一期(200期)将是我最后一期以主要贡献者身份参与项目。我想要感谢开启这个项目的Jesse Squires,以及相信我并接替我继续运营这个项目的Bas Broek。同样我还要感谢所有帮助撰写、审阅或提供内容的贡献者。这确实是一个社区运行的项目。谢谢!
本期是 Swift 编辑组整理周报的第四十五期,每个模块已初步成型。各位读者如果有好的提议,欢迎在文末留言。
感觉自己给自己释疑,也是一个极为有趣的过程。这次,我还新增了“猜想”一栏,来尝试回答一些暂时没有足够资料支撑的问题。 Swift 版本是:4.0.3。不同版本的 Swift,可能无法复现问题。 个人记
本期是 Swift 编辑组自主整理周报的第二十四期,每个模块已初步成型。各位读者如果有好的提议,欢迎在文末留言。
10月5日,环球银行金融电信协会SWIFT在官网公布了其用于跨境支付的央行数字货币DBDC实验结果,此次实验参与者包括多个国家央行和全球商业银行等14家,针对不同技术和货币进行了为期8个月的试验,此次试验包括法兰西银行、德意志联邦银行、汇丰银行、Intesa Sanpaolo、NatWest、SMBC、渣打银行、瑞银集团和富国银行在内的14家中央银行在测试环境中进行合作,以加速后续全面部署合作。10月10日,据悉我国在央行数字货币的跨境支付领域也传来好消息。由“工农中建交”五大国有银行参与的数字人民币跨境支付结算项目——“货币桥”(m-CBDC-Bridge )近期正式落地。该平台首次成功完成了基于4个国家或地区央行数字货币的真实交易试点测试,来自4地的20家商业银行基于该平台为客户完成以跨境贸易为主的多场景支付结算业务。为什么国家央行和跨境支付组织机构在积极研究基于区块链的跨境支付?这个要从银行间跨境支付的需求和对应的通信技术说起。
本期是 Swift 编辑组自主整理周报的第五十期,每个模块已初步成型。各位读者如果有好的提议,欢迎在文末留言。
在上期提到,对象存储作为低成本,接口通用开放,可远程访问的一种新型云存储形式,得到了广泛的应用,而AWS的S3(Simple Storage Service)也成为了对象存储的事实标准。
本文收录总结了常见的 Swift 和 Objective-C 的面试题,希望对大家有所帮助。
本期是 Swift 编辑组自主整理周报的第二十一期,每个模块已初步成型。各位读者如果有好的提议,欢迎在文末留言。
默认情况下,使用 Swift 内置的 Codable API 编码或解码数组只有全部成功或者全部失败两种情况。可以成功处理所有元素,或者引发错误,这可以说是一个很好的默认设置,因为它可以确保高水平的数据一致性。
在前段时间呢陆陆续续的更新了一系列关于重构的文章。在重构我们既有的代码时,往往会用到设计模式。在之前重构系列的博客中,我们在重构时用到了“工厂模式”、“策略模式”、“状态模式”等。当然在重构时,有的地方没有点明使用的是那种设计模式。从今天开始,我们就围绕着设计模式这个主题来讨论一下我们常用的设计模式,当然“GoF”的23种设计模式不会全部涉及到,会介绍一些常见的设计模式。在接下来我们要分享的设计模式这个系列博客中,还是以Swift语言为主来实现每种设计模式的Demo。并且仍然会在GitHub上进行Demo的
本期是 Swift 编辑组自主整理周报的第三十四期,每个模块已初步成型。各位读者如果有好的提议,欢迎在文末留言。
本期是 Swift 编辑组自主整理周报的第四十九期,每个模块已初步成型。各位读者如果有好的提议,欢迎在文末留言。
本期是 Swift 编辑组整理周报的第三十六期,每个模块已初步成型。各位读者如果有好的提议,欢迎在文末留言。
本期是 Swift 编辑组自主整理周报的第五十五期,每个模块已初步成型。各位读者如果有好的提议,欢迎在文末留言。
InfoQ 最引人注目的功能之一是我们的主题图,它综合了我们对不同主题如何在技术采用曲线中叠加的理解。当需要从编辑的角度决定我们想要涵盖的内容时,它们作为优先考虑不同和竞争利益的指南非常有用,但我们也相信分享它们可以帮助我们的读者更好地了解当前和未来的技术前景并帮助 告知他们的决策过程。
Swift 中类,结构体和枚举等类型支持计算属性和下标,这些计算属性和下标作为类型的成员,当获取或者设置这些成员时,他们触发程序员指定的计算。最近被接受的提案 SE-0296 介绍了通过和async和await来实现异步函数,但是没有指明计算属性和下标可以支持类似async这种异步效果。此外,为了充分利用async属性,用来指定一个属性throw同样重要。本文旨在通过为有效的只读属性和下标提供语法和语义来填补这部分空白。
控制器之间经常需要互相传递值,第一个控制器(简称 MasterVC)在通过 NavigationController Push 第二个控制器(简称 DetailVC)的时候,可以捕获到 DetailVC,所以可以设定后者的变量。而 DetailVC 在给 MasterVC 传递值的时候,比如设定 MasterVC 的 Title,却不能用同样的方式传值(试一下就知道了),而且因为我们要通过 NavigationController 返回原来的界面而不是 push 一个新的界面,所以也不能通过 segue 传值,解决方法我尝试了两种:
本期是 Swift 编辑组整理周报的第四十六期,每个模块已初步成型。各位读者如果有好的提议,欢迎在文末留言。
继上一篇文章【面试】腾讯 iOS 开发实习电话面试记录(一)后,又接到了第二个电话,继续记录。根据回忆写的,问题先后可能不对。
在这篇文章中,我们将建立一个条形图,比较基督城地区自然散步的持续时间。我们将使用今年推出的新的Swift Charts 框架,并将看到如何绘制默认不符合 Plottable 协议的类型的数据,如 Measurement<UnitDuration>。
InfoQ 最引人注目的亮点之一是我们的主题图,它反映了我们对技术采用曲线中不同主题交叠情况的综合理解。当我们从编辑的角度决定要报道哪些内容时,就可以用它们作为参考来从纷繁复杂且互相竞争的话题中选出最优先的事项。我们也相信,分享这些主题图可以帮助我们的读者更好地理解当前和未来的技术环境,并帮助他们更好地做出决策。
前言:在这次App版本迭代进入集成测试阶段尾声,正式环境打包release环境后,测试回归发现许多包含 tableView 的页面都无法响应点击事件。但是在 debug 环境下从开发功能到滚动测试流程,一直都是没问题的。开始时,真的是百思不得其解
要编写出色的应用程序,您不仅需要提出一个好主意,还需要考虑未来。快速有效地适应、改进和扩展应用程序功能的灵活性至关重要。无论您是在团队中工作还是独自工作,从长远来看,您编写和组织代码的方式将对维护您的代码产生巨大影响。这就是 SOLID 原则的用武之地。
本期是 Swift 编辑组自主整理周报的第二十三期,每个模块已初步成型。各位读者如果有好的提议,欢迎在文末留言。
如果说2016年Fintech前沿有什么有趣的话题榜单,你一定会在其中看到区块链,这样一个最初被视作“娱乐大于实际”的比特币所采用的结算系统,现如今已跻身于Fintech的最前沿。之所以会有这样的骤然变化,是基于实实在在的技术创新。伴随着以太坊(Ethereum)重新定义区块链应用场景,R3、金链盟等联盟链的成立,可信可控云计算 、终端安全存储等技术的演进,以及众多机构加入探索,区块链应用步伐大大加快,甚至引起了央行的注意。我们可以看到越来越多金融相关领域的龙头企业尝试拥抱这项技术,用于解决行业难题。 与
在这篇文章中,我们将建立一个条形图,比较基督城地区自然散步的持续时间。我们将使用今年推出的新的Swift Charts框架,并将看到如何绘制默认不符合Plottable协议的类型的数据,如Measurement<UnitDuration>。
本期是 Swift 编辑组自主整理周报的第四十八期,每个模块已初步成型。各位读者如果有好的提议,欢迎在文末留言。
Nvidia将收购云数据存储专家SwiftStack,以加速由Nvidia开发的AI应用程序在私有云和公共云之间移动时对象存储领域的整合。
数据结构中的栈与队列还是经常使用的,栈与队列其实就是线性表的一种应用。因为线性队列分为顺序存储和链式存储,所以栈可以分为链栈和顺序栈,队列也可分为顺序队列和链队列。本篇博客其实就是《数据结构之线性表的顺序存储于链式存储(Swift面向对象版)》这篇博客的应用。本篇博客会分别给出队列的顺序和链式存储,以及栈的顺序和链式存储。 说到栈和队列这两种数据结构,理解起来应该不难。队列就是进行排队的数据结构,一个队列肯定是线性结构了,之所以称之为队列,是因为有着先入先出(FIFO ----first in first
过去十年,零售银行在创新方面取得了重大进展,而消费者的品味和需求瞬息万变——这要归功于互联网。例如,事实证明,手机银行是推动全球普惠金融的重要工具。但是,一旦话题涉及区块链或分布式账本技术 (DLT),零售银行就迟迟没有跟上。这与参与者大量参与其他金融服务领域形成鲜明对比,包括投资银行、基础设施提供商和政府。
在机器的帮助下,我们的需要,想要和需求大量增加,全球市场也是如此,因此全球市场被数字网络或社区所包裹。我们被科技所环绕,被小工具包围 - 所有这些都通过编程或编码加以支持。没有卫星,电视,智能手机,证券交易所或机器学习和人工智能的生活是不可想象的,因此具有良好技能的程序员总是被需要的。
本期是 Swift 编辑组自主整理周报的第十期,每个模块已初步成型。各位读者如果有好的提议,欢迎在文末留言。
本文笔者在 MDCC 16 (移动开发者大会) 上 iOS 专场中的主题演讲的文字整理。发布于 2016年11月29日 最后更新于 2020年10月22日
本期是 Swift 编辑组整理周报的第三十五期,每个模块已初步成型。各位读者如果有好的提议,欢迎在文末留言。
本期是 Swift 编辑组自主整理周报的第五十一期,每个模块已初步成型。各位读者如果有好的提议,欢迎在文末留言。
本期是 Swift 编辑组自主整理周报的第五十二期,每个模块已初步成型。各位读者如果有好的提议,欢迎在文末留言。
Ceph对象存储是一种分布式存储系统,旨在提供高可靠性和可扩展性的存储解决方案。它通过将数据分布在多个节点上,使用冗余和数据恢复机制来确保数据的安全性和持久性。Ceph对象存储使用分布式算法来管理数据的位置和副本,以实现数据的可靠性和高性能。
领取专属 10元无门槛券
手把手带您无忧上云