首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

苹果宣布使用Swift全面重写Foundation框架

因为采用了原生 Swift 实现,Foundation 框架不再需要在 C 和 Swift 之间进行转换,从而获得更高性能。...正如苹果工程师 Tony Parker 在 Swift 论坛上所解释那样,性能方面带来好处是非常显著使用 Swift 重新实现日历应用速度是 C 1.5 到 18 倍(在创建、日期计算等各种测试基准调用...如前所述,使用 Swift 重写将是一个重构 Foundation 框架机会。...开发者可以只引入特定应用程序实际需要依赖项。例如,一个从头开始开发应用程序并且想要切断与 Darwin Foundation 层所有联系开发者,可以完全跳过 Obj-C 兼容层。...这一声明在 Swift 论坛上引发了许多评论,其中大多数都暗示重新考虑现有的几个 API 便利性,确保 Swift 类型(如 Codable)或结构化并发足够强大,以便在核心基础层完全取代 Obj-C

91930
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Swift2转Swift3

    例如:Masnory -> SnapKit 四、cocoapod 推荐使用 useasframework 方式集成 五、在 swift 2.3 转 swift 3.0 时候,block(闭包)里面的参数都不要形参...这样做目的是: 一:工具类使用量非常大,所以很有必要 swift2.0 / 3.0 化 二:在工具类使用如此频繁情况下,如果你xcode不会联想,这样将会使多么令人头疼事情啊!...再者一点就是 OC 方法在联想方面差要命 三、cocoapod 使用 useasframework,swift中比较注重 module 概念,这个也是趋势,所以同样是混编,但是仍然要更改为包形式...四、关于block 形参问题,这个需要我们有耐心一个一个更改 五、在 swift 3.0 返回值没有使用那么会报一个警告,添加一个@discardresult 在方法前面,放置警告 六、针对第三点...包 概念,我们会发现,例如在使用 snapkit 时候,只要使用 snp 地方都要 import SnapKit (当然这个主要是针对swift2.3 -> swift 3.0 并且没有使用 useasframework

    2K50

    苹果全新UI框架来了!可视化编程,自动化减少20%代码量

    来源:Github等 编辑:鹏飞 本文转自公众号:新智元 【导读】SwiftUI是为Apple平台创建用户界面的现代化框架,以前所未有的速度创建漂亮、动态应用程序。...一致性:这意味着Swift和Objective-C之间不会再看到奇怪错误,或者非常旧API与新API混合 简洁:可以节省10%-20%代码量 如果你刚刚接触SwiftUI,刚开始你可能需要适应一下...而SwiftUI通过4种方式,解决了上述问题: 用一个新声明式UI结构,定义了布局外观和工作方式 更新UI预览会自动生成新Swift代码,反之,更改Swift代码也会更新UI预览 Swift任何绑定例如有效...尽可能依赖工具 通过消除源码控制痛点、消除对UIKit严重依赖、消除Interface Builder可能遇到一些连接混淆,苹果希望开发者更多使用Swift,尽可能依赖工具而不是纠结于一些不必要事情...比如,它只支持Swift,你不能在Obj-C使用SwiftUI;SwiftUI目前还不是很成熟,正在从事iOS开发程序员可能更应该继续使用Obj-C,直到SwiftUI足够成熟。

    5.4K20

    iOS安全基础之钥匙串与哈希

    我查了一下,目前苹果公司共提供了几个API来帮助用户提高其所使用应用程序安全,并且你将在使用钥匙串时探索这些API。...下载资料在解压后,请确保打开Friendvatars.xcworkspace包含了所有CocoaPod依赖项。如下所示,构建并运行该应用程序后,你将打开一个登录屏幕。...有些攻击者可能想要盗取用户隐私信息已进行牟利,而另一些人可能想看用户手机存有什么有价值商业机密。 所以我要在重复一遍,确保应用程序保存数据免受潜在威胁影响是你阅读本文目的。...即使你应用程序不涉及金融信息,存储私人用户信息也不应该掉以轻心。 不过,要直接与钥匙串进行交互,那是相当复杂,尤其是在Swift,因为你必须使用主要由C语言编写安全框架。...幸运是,你可以通过从下载材料中样本代码GenericKeychain借用Swift封装器来避免使用这些低级API

    2.8K20

    肘子 Swift 周报 #023 | 为应用配备隐私清单

    肘子的话 苹果公司最近向提交应用审核开发者发出通知,要求在应用中使用特定 API 情况下添加隐私清单文件。...截至 2024 年 5 月 1 日,未能提供完整隐私清单应用将无法通过 App Store 审核流程。开发者需要为使用 API 或第三方库提供明确隐私声明,确保透明度和用户隐私保护。...要构建成熟应用程序,仅有一套完善开发语言工具链是不够,还需要合适 UI 框架。...] @_silgen_name 属性赋予开发者在 Swift 前向声明函数能力,允许他们直接引用编译后二进制可能在当前模块不可见函数。...这一机制广泛用于 Swift 标准库,以实现类似于 Obj-C 前向声明功能,从而让库能够调用 Swift 运行时更深层函数。

    11310

    iOS系统架构及常用框架

    Media layer 顾名思义,媒体层可以在应用程序使用各种媒体文件,进行音频与视频录制,图形绘制,以及制作基础动画效果。...(CF=Core Foundation),这是比较底层;另一种是基于 Obj-C 以 NS 开头类(NS=Next Step),这种类抽象层次更高,易于使用。...,让我们应用程序可以对音频进行处理 AVFoundation.framework:提供音频录制和回放底层API,同时也负责管理音频硬件 CFNetwork.framework:访问和配置网络,像HTTP...:提供2D绘制基于CAPI Core Audio:它是播放,处理和录制音频专业技术,能够轻松为您应用程序添加强大音频功能。...SimpleCarrier:简单运营商信息获取 UI组件库 YYKit:是一组庞大、功能丰富 iOS 组件,包含Model解析、图片加载、缓存等基础服务,都是基于Category设计使用方便且性能高于一些老框架

    7.5K21

    Swift3.0带来变化汇总系列一——字符串与基本运算符变化

    首先,Swift3.0确实带来了很大改变,许多Swift结构体API都进行了更新,例如String,Array等,Swift3.0版本将许多类Objective-C风格API都更换成了Swift风格...,其目的使开发者可以使用Swift更加惬意有趣编程。...二、String类API变化       除了SwiftCocoa框架API有了大范围修改外,Swift一些核心库也有了很大改动。      ...Swift3.0字符串类型String在方法API上更加简洁,其中变动较大是与下标相关方法,列举如下: var string = "Hello-Swift" //获取某个下标后一个下标对应字符...从上面的示例代码可以看出,String类型很多方法命名进行了Swift风格简化,改动较大一个点是关于下标index改变,移除了两个Index下标移动方法,使用String类型index(

    75520

    慎选!这几门编程语言,即将被淘汰,不要学错了!

    由于C#更加简洁,提供了更广泛功能,并且更适合于云服务和移动开发(在当前市场扮演着重要角色),因此很多开发人员都放弃使用VB转而投向C#怀抱。...Python在2000年代开始让Perl黯然失色,并一度成为编程入门首选语言。 在过去15年,Perl使用量一直在稳步下降,而且也多半会持续下降,有点搂不住。...尽管Objective-C已经在macOS、iOS和OS X开发中使用了二十多年(1996 年至今)时间。 但如今已经很少有程序员在使用该语言,因为Swift横空出世了。...Obj-C在很大程度上是基于复杂C语言创建,而Swift就删除了这些复杂元素,同时增加了一些新功能特性。 例如自动内存管理,对Cocoa Touch支持以及类型安全集成。...Swift设法实现和维护了较高语言稳定性和用户采用率,因为Apple公司仍在坚持重写Obj-C库,以使旧语言使用者可以很容易地进行过渡。

    10910

    一起聊聊 Swift 3.0

    API大家都知道是应用程序接口 API只是提供函数签名 而ABI是系统和语言层面的 如果ABI稳定 意味着以后Swift版本更新升级 我们不需要再修改老版本 Swift 语言编译库了 如果你曾经从...弹性/韧性 解决易碎二进制接口问题 Fragile binary interface problem是面向对象编程语言通病 如果在程序引入了外部库 我们程序中使用并继承了该外部库类 如果外部库有改动...聚焦和完善 尽管是一个相对年轻语言,但是Swift快速发展已经积累了一定语言功能 Swift 3.0将会会删除或改善这些功能 从而提供更好整体一致性 6....新API设计规范 Swift3.0 发布了新语言设计规范 其中在Swift3.0标准库和核心库将会遵循这个设计规范 设计规范地址: https://swift.org/documentation/...即将删除 currying func(Swift柯里化(Currying)) 特性 在Swift3.0 currying func 将会被移除 该提案在SE-0002被提出 提案给出原因是 currying

    45110

    正在消失五种编程语言

    1 Ruby Ruby 在 1999 年发布后立即受到程序员们热捧,它能够快速构建应用程序特性给程序员留下了非常深刻印象。...由于 C#更加简洁,提供了更广泛功能,并且更适合于云服务和移动开发(在当前市场扮演着重要角色),因此很多开发人员都放弃使用 VB 转而投向 C#怀抱。...尽管 Objective-C 已经在 macOS、iOS 和 OS X 开发中使用了二十多年(1996 年至今)时间,但如今已经很少有程序员在使用该语言,因为 Swift 横空出世了。...Obj-C 在很大程度上是基于复杂 C 语言创建,而 Swift 有效地删除了这些复杂元素,同时增加了一些新功能特性,例如自动内存管理,对 Cocoa Touch 支持以及类型安全集成。...Swift 设法实现和维护了较高语言稳定性和用户采用率,因为 Apple 公司仍在坚持重写 Obj-C 库,以使旧语言使用者可以很容易地进行过渡。

    57121

    iOS10 Swift3.0 XCode 8 总结

    NSCameraUsageDescription key with a string value explaining to the > user how the app uses this data 因为它企图访问敏感数据时没有在应用程序...,想要达到之前效果需要在父级控件上调用layoutIfNeed 4, NSDate Swift3.0会将ocNSDate转为Data类型,有些操作NSDate第三方库会闪退 5, Notification...Swift3.0字符串类型通知常量被定义为struct static let MyGreatNotification = Notification.Name("MyGreatNotification...Pre-Fetching(预加载), 如果你翻看UICollectionView最新API你可以发现新增了如下属性: @property (nonatomic, weak, nullable) id...,Swift3.0 允许关键字作为参数标签 Swift3.0开始我们将能使用除inout var let关键字作为参数标签 // Swift 3 calling with argument label

    78410

    iOS开发 创建podspec文件,为自己项目添加pod支持

    0.准备工作 查看版本 pod --version 1.上传项目源码 把项目源码上传到gitHub仓库再clone到本地(以ZJRefreshControl为例), 如果项目本来就在gitHub仓库...则说明验证通过, 否则, 根据提示修改podspec文件再次验证直到验证通过 如果出现Error但是提示信息不足,可以添加--verbose 以获取更多错误信息 pod lib lint --verbose...3.打tag 上传podspec podspec文件需要指定tag, 完成上述操作后给项目打tag git tag -m"first release ZJRefreshControl" "1.1"...git push --tags 最后使用pod trunk命令,把podspec文件推送到CocoaPod官方库 pod trunk 需要注册 查看个人注册信息 pod trunk me 如果没有个人信息...8 and iOS 10 如果要提交组件为swift5.0 就必须满足以下条件 CocoaPods 升级为 1.1.0 及以上 配置文件添加s.swift_version='5.0' 详细介绍

    4K20

    5 种可能在 10 年后消失编程语言

    Ruby在1999年发布后立即受到热捧,程序员们印象最深就是它能让他们快速构建应用程序。...在过去15年,Perl使用率一直在稳步下降,我们没有看到任何东西会在短期内阻止这一趋势。 5. Objective-C ?...尽管Objective-C用于MacOS、iOS和OSX开发已有二十多年历史(1996年至今),但现在很少有程序员再使用这种语言。这一切都要归功于Swift。...虽然Obj-C在很大程度上是基于复杂C语言,但Swift则有效地去掉了这些元素,同时添加了全新功能,如自动内存管理、对Cocoa Touch支持和类型安全集成。...Swift已经成功地实现了较高稳定性和用户采用率,而苹果公司仍在重写Obj-C库,以使旧语言支持者更容易过渡。

    57830

    十年后将要消失五种编程语言

    Ruby Ruby 在 1999 年发布后立即受到程序员们热捧,它能够快速构建应用程序特性给程序员留下了非常深刻印象。...由于 C#更加简洁,提供了更广泛功能,并且更适合于云服务和移动开发(在当前市场扮演着重要角色),因此很多开发人员都放弃使用 VB 转而投向 C#怀抱。...尽管 Objective-C 已经在 macOS、iOS 和 OS X 开发中使用了二十多年(1996 年至今)时间,但如今已经很少有程序员在使用该语言,因为 Swift 横空出世了。...Obj-C 在很大程度上是基于复杂 C 语言创建,而 Swift 有效地删除了这些复杂元素,同时增加了一些新功能特性,例如自动内存管理,对 Cocoa Touch 支持以及类型安全集成。...Swift 设法实现和维护了较高语言稳定性和用户采用率,因为 Apple 公司仍在坚持重写 Obj-C 库,以使旧语言使用者可以很容易地进行过渡。

    89020

    Swift3.0带来变化汇总系列二——集合类型变化

    Swift3.0带来变化汇总系列二——集合类型变化     与字符串类似,Swift中集合类型在3.0版本也做了大量API上面的修改。...一、Array数组更改     array数组修改API示例如下: //创建大量相同元素数组 //创建有10个String类型元素数组,并且每个元素都为字符串"Hello" //swift2.2...} var arraySort = [1,3,5,6,7] //获取数组最大值 //swift2.2 //arraySort.maxElement() //swift3.0 arraySort.max...() //获取数组最小值 //swift2.2 //arraySort.minElement() //swift3.0 arraySort.min() //从大到小排序 //swift2.2 //arraySort...//swift2.2 //set1.maxElement() //swift3.0 set1.max() //获取集合最小值 //swift2.2 //set1.minElement() //swift3.0

    98410

    OpenCV4.4刚刚发布!支持YOLOv4、EfficientDet检测模型,SIFT移至主库!

    不仅算法众多,而且文档、源码、各平台下SDK都极易获取/访问。 ?...多说一句,SIFT是否过期其实对学生来说,意义不大,因为本身就是可以用于学术研究,而且之前在non-free模块也可以快速使用;但对于企业级商业应用来说,意义还是很大。 二、DNN模块 ?...版本支持 CUDA后端许多修复和优化 三、G-API模块 ?...添加了更多图像处理内核:Laplacian和双边 filters。 修复了 G-API OpenCL后端潜在崩溃。 四、社区贡献 ?...OpenCV社区许多其他伟大贡献,包括但不限于: Obj-C / Swift绑定 (opencv_contrib)Julia绑定是正在进行GSoC项目的一部分 (opencv_contrib)BIMEF

    1.2K20
    领券