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

Swift 周报 第十八期

周报精选 新闻和社区:苹果 70 亿收购曼联消息不实 提案:Package 注册表认证 Swift 论坛:讨论数组的悬空指针 推荐博文:灵动岛开发 话题讨论: 世界杯你赚钱了吗?...提案 正在审查的提案 SE-0378[2] Package 注册表认证 提案正在审查。 Web 服务使用的常用身份验证方法包括基本身份验证、访问令牌和 OAuth。...SwiftPM 目前只支持基本的身份验证,这限制了它与 Package 注册服务交互的能力。 Package 注册表需要对其部分或全部 API 进行身份验证,以便识别执行操作的用户并相应地授权请求。...讨论状态初始化器的 UUID[11] 讨论对于金融计算用 Decimal 还是 Double[12] 推荐博文 SwiftUI 开发灵动岛[13] 摘要: 本文将详细介绍使用 WidgetKit...使用此框架我们可以锁定屏幕或者灵动岛上显示实时活动。 话题讨论 世界杯你赚钱了吗? 14 亿人为什么选不出一支十多人的优秀团队?到底是哪里出了问题?元芳,你怎么看?国足⚽️的未来在哪里

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

如何在Xcode下预览含有Core Data元素的SwiftUI视图

结合两年来SwiftUI中使用Core Data的经验和教训,我们将在本文中探讨: •导致SwiftUI预览崩溃的部分原因•如何在之后的开发避免类似的崩溃出现•如何在Xcode安全可靠地预览含有...有时需要重启Xcode甚至重启系统才会恢复正常 SwiftUI下的Core Data SwiftUI App life cycle 从Xcode 12开始,开发者可以Xcode中使用SwiftUI原生的应用程序生命周期创建项目...这种创建内存数据库的形式Unit Test已经被使用很久了。 CoreData支持四种持久化存储类型:Sqlite、XML、二进制、内存。...目前开发使用SwiftUI+CoreData应用程序时,将CoreData部分的开发同应用程序的UI构建是完全分离的。...完成了各种处理CoreData数据的方法后,通常会创建一些非常简陋的视图或Unit Test来验证代码以及创建测试数据集。这样进行UI开发的时候,已经可以有一个可用来演示的数据库文件了。

5.1K10

SwiftUI 视图的生命周期研究

SwiftUI ,系统收回了上述的权利,开发者基本丧失了对视图生命周期的掌控。...类型树在编译后就已经固定, app 的生命周期内都不会发生变化。 视图值树 SwiftUI ,视图是状态的函数[2]。...但 SwiftUI 并非一定会从新的实例获取 body 结果,如果之前的实例注册过数据依赖,视图值树仍可能会从原来的实例的 body 获取结果。...这样即使 SwiftUI 创建了多余的实例,也不会加大系统的负担。 注册数据依赖 SwiftUI ,状态(或者说是数据)是驱动 UI 的动力。...当使用新实例时,SwiftUI 仍会将新的实例同原有的依赖项关联起来。 鉴于以上原因,注册视图依赖项的时机应该在初始化后,获得 body 结果之前。

4.3K30

Ask Apple 2022 与 SwiftUI 有关的问答(下)

除了早期的 SwiftUI 版本,Form、List、LazyStack 以及 LazyGrid 之间执行效率和子视图的生命周期方面的表现都相当接近。...自定义布局Q:经常想根据列表中最长或最短的文字来布置各种小组件。鉴于动态文本大小应用程序运行时可能会发生变化,衡量给定字体的文本大小的最佳方法是什么?A:你好!我们新的布局协议支持这个功能。...软弃用Q:最近,注意到新的 @ViewBuilder 函数以前的版本是不可用的,弃用信息提示使用新的方法取代老方法,这是 SwiftUI 的 API 设计缺陷还是错过了什么?...Too complex to type checkQ: iOS 14 SwiftUI 遇到一个问题,试图有条件地显示 3 个符合 Shape 协议的对象的一个。...加载 Core Data 图片Q:CoreData 内使用 BinaryData with extern storage 存储图片。

14.7K30

Ask Apple 2022 与 Core Data 有关的问答 (下)

主程序与扩展程序数据同步Q:有一个主应用程序和一个扩展程序,它们都读取相同的 Core Data 数据库。但是,当我应用程序中进行更改时,的扩展程序重新启动之前不会看到更改。...如果用户应用程序之外删除文档,例如在 Finder 希望 Spotlight 的索引与它一起被删除。所以我想如果索引可以存储包文件夹,那就可以解决这种情况。有没有办法正确处理这种情况?...应用程序中一次性加载 CoreData 数据并将其保存在局部变量中使用多个 FetchRequests目前 SwiftUI 中使用 UICalendarView 并从 CoreData 获取数据...数据手动排序Q:应用程序,用户可以表视图中通过拖放来重新排列项目。...筛选关系数据Q:发现在 SwiftUI 中使用 @FetchRequest 是将用户界面与 Core Data 数据绑定很好的手段。然而,使用关系来获得同样的无缝绑定时,碰到了一个小问题。

3.2K20

Ask Apple 2022 与 SwiftUI 有关的问答(上)

DocumentGroupQ: macOS 上使用 SwiftUI 应用生命周期和 DocumentGroup 时,如果应用仅为数据阅读器,是否可以禁止创建新文件?...这在 SwiftUI 仍适用,还是说 struct 本身现在被视为 viewModel ?A:SwiftUI 试图与应用程序的整体架构无关。...onAppear、init、viewDidLoadQ:应用程序 UIHostingController 托管了 SwiftUI 视图,这些视图都处于一个 UITabBarController...在想:1、对于像这样的 UITabBarController SwiftUI 视图,onAppear 到底应该在什么时候被调用?...事实上,这些视图( 惰性容器的视图 )一旦被创建,其存续期将持续到惰性容器被销毁为止。请阅读 SwiftUI 视图的生命周期研究[12] 了解更多内容。

12.1K20

Swift 掌握 Observation 框架

下面将介绍如何使用观察框架来处理应用程序的数据流。使用 @ObservableRevenueCat 简化了实施应用内购买、管理客户和扩展应用业务的过程。...无论你是第一次添加应用内购买和订阅,还是已经有数百万付费用户,你都可以几分钟内开始使用 RevenueCat。看看为什么有超过 30,000 个应用程序使用 RevenueCat 来支持其应用业务。...之后,我们可以观察 Store 类型的任何变量。我们 Store 类型只有一个变量,用于定义存储的状态。另一个字段是一个永不更改的 let 常量。...SwiftUI 自动跟踪 SwiftUI ,你不需要使用 withObservationTracking 函数来观察更改。SwiftUI 自动跟踪视图正文中使用的任何可观察类型属性的更改。...我们不需要 @ObservedObject 属性包装器来跟踪可观察类型的更改,但我们仍然需要 @StateObject 替代项以 SwiftUI 生命周期中存活。

18210

Core Data with CloudKit (一) —— 基础

最近几年苹果也注意到了这个问题,通过添加PersistentContainer极大的降低了Stack创建的难度;SwiftUI及Core Data模版的出现让初学者也可以较轻松地项目中使用其强大的功能了...应用程序的使用者,可以将部分数据共享给其他的同一个app的使用者,共享的数据将被放置共享数据库,共享者可以设置其他用户对于数据的读写权限。...托管对象托管对象上下文(NSManagedObjectContext)中注册。在任何给定的上下文中,托管对象最多有一个实例对应于持久存储的给定记录。...以私有数据库同步为例: •初始化:1.创建CKContainer2.根据NSManagedObjectModel配置Schema3.私有数据库创建ID为com.apple.coredata.cloudkit.zone...两年多的使用便碰到不少问题。借着今年打算在【健康笔记3】[6]实现共享数据库功能的机会,最近较系统地重新学习了Core Data with CloudKit并对其知识点进行了梳理。

94730

Swift 周报 第十九期

例如:您希望将库插入应用程序的位置进行调试,而无需手动调用库重建应用程序 包含可选库的插件系统将自己注册到主应用程序以更改行为 希望启动时进行 1 次设置而不要求开发人员显式调用其配置的第三方库作者...建议的解决方案: 建议我们自动将 macOS 上生成的新包的最低支持版本添加到用户当前的 macOS 版本。...这里为大家提供一种注册方式。核心内容使用国外手机号获取验证码。...使用 OpenAI 的 ChatGPT 写 SwiftUI 代码[16] 摘要: 上面介绍了如何注册 ChatGPT,本篇文章介绍如何使用 ChatGPT 写 SwiftUI 代码。...它不但让我们参与到布局过程,而且也给了我们一个很好的机会去更好的理解布局 SwiftUI 的作用。 话题讨论 你如何看待各地疫情管控放开 欢迎文末留言参与讨论。

1.5K30

AttributedString——不仅仅让文字更漂亮

swiftUI、uiKit和appKit三个scope存在很多的同名属性(比如foregroundColor),访问时需注意以下几点: •当Xcode无法正确推断该适用哪个Scope的属性时,请显式标明对应的...本地化的属性字符串,也提供了类似的功能,并且会在字符串设置对应的属性。提供了更高的灵活性。...缩紧、标号等其他信息可以代码可以通过枚举关联值来处理。...为了方便自定义属性集被用于需要指定Scope的场合,自定义Scope推荐嵌套入需要的系统框架Scope(swiftUI、uiKit、appKit)。...:SwiftUIAttributes // 的Scope中将系统框架swiftUI也添加进来 } var myScope:MyScope.Type{ MyScope.self

3.8K40

Core Data with CloudKit (六) —— 共享数据

尽管苹果提供了不少新的API来简化该操作,但想完整的应用程序实现该功能仍具有不小的挑战。...当所有者创建了一个共享关系后,系统将自动为其私有数据库创建一个新的自定义区域(com.apple.coredata.cloudkit.share.xxx-xx-xx-xx-xxx),并将共享的数据(...包括其关系数据)从私有数据库的com.apple.coredata.cloudkit.zone移动到新建的Zone。...SwiftUI lifeCycle模式下,该响应发生在UIWindowSceneDelegate。因此需要在AppDelegate中进行转接。...对其健康笔记3[6]的表现充满了期待和信心。 从开启本系列文章开始,完全没有想到整个过程竟需耗费如此多的时间和精力。

1.3K20

WWDC 23 ,SwiftUI 5 和 SwiftData 的初印象

本文将聊聊对本届 WWDC SwiftUI 5.0 和 SwiftData 的初步印象。 访问我的博客 www.fatbobman.com[1] 可以获得更好的阅读体验以及最新的更新内容。...不考虑兼容旧版本的情况下,认为 SwiftUI 5.0 的升级可以打 95 分(满分 100 分),不过考虑到很多的开发者相当一段时间内还无法使用这些新功能,心情就会异常的低落。...这是目前整理的一些有关 SwiftData 的问题和注意事项( 原文发表推文中,没有进行更系统的归纳): 尚不支持公共和共享数据的云同步 在当前版本,通过其他上下文(ModelContext)创建的数据并不会自动合并到视图上下文中...开心还是无奈 今年的 WWDC ,苹果为 SwiftUI 带来了非常大的变革,并推出了开发者向往已久的 SwiftData。...接下来的一段时间里,将在博客中介绍和探讨 SwiftUI、SwiftData 以及几个比较感兴趣的新框架 TipKit 和 CKSyncEngine。

34110

SwiftUI 状态管理系统指南

前言 SwiftUI与苹果之前的UI框架的区别不仅仅在于如何定义视图和其他UI组件,还在于如何在整个使用它的应用程序管理视图层级的状态。...例如,假设我们正在开发一个SignupView,使用户能够通过输入用户名和电子邮件地址应用程序注册一个新账户。...为了更详细地探讨这意味着什么,让我们现在假设我们想创建一个视图,让我们的用户编辑他们最初注册时输入的个人资料信息。...观察对象 State和Bingding的共同点是,它们处理的是SwiftUI视图层次结构本身管理的值。...希望这篇指南能成为一个很好的方式来概述SwiftUI的各种状态处理机制,尽管一些更具体的API被遗漏了,这篇文章强调的概念应该涵盖了所有基于SwiftUI的状态处理的绝大多数用例。

5K20

优化 SwiftUI List 显示大数据集的响应效率

SwiftUI 视图的生命周期研究[3] 一文对 List 如何对子视图的显示进行优化做了一定的介绍。...标识( Identity )是 SwiftUI 程序的多次更新识别相同或不同元素的手段,是 SwiftUI 理解你 app 的关键。... SwiftUI 为视图设置显式标识目前有两种方式: ForEach 的构造方法中指定 由于 ForEach 的视图数量是动态的且是在运行时生成的,因此需要在 ForEach 的构造方法中指定可用来标识子视图的...另外如果 id 的标识值发生变化,SwiftUI 将丢弃原视图(生命周期终止及重置状态)并重新创建新的视图。...除非没有其他选择,否则并不推荐大家对 UIKit ( AppKit ) 控件进行重新包装,应使用尽可能微小的侵入方式对 SwiftUI 的原生控件进行补充和完善。

9K20

WWDC 23 ,SwiftUI 5 和 SwiftData 的初印象

本文将聊聊对本届 WWDC SwiftUI 5.0 和 SwiftData 的初步印象。...不考虑兼容旧版本的情况下,认为 SwiftUI 5.0 的升级可以打 95 分(满分 100 分),不过考虑到很多的开发者相当一段时间内还无法使用这些新功能,心情就会异常的低落。...这是目前整理的一些有关 SwiftData 的问题和注意事项( 原文发表推文中,没有进行更系统的归纳): 尚不支持公共和共享数据的云同步 在当前版本,通过其他上下文(ModelContext)创建的数据并不会自动合并到视图上下文中...开心还是无奈 今年的 WWDC ,苹果为 SwiftUI 带来了非常大的变革,并推出了开发者向往已久的 SwiftData。...接下来的一段时间里,将在博客中介绍和探讨 SwiftUI、SwiftData 以及几个比较感兴趣的新框架 TipKit 和 CKSyncEngine。

1.1K20

SwiftData 的并发编程

Core Data 中进行并发编程可能并不困难,但是充满了陷阱。即使对 Core Data 有充分的经验,稍有疏忽也可能在代码埋下隐患,从而使应用程序变得不安全。...这也是为什么我们需要将操作代码放置perform或performAndWait的闭包。 对于视图上下文(viewContext)和其中注册的托管对象实例,开发者应该在主线程队列中进行操作。...同样,对于私有上下文和其中注册的托管对象,我们应该在私有上下文所创建的串行队列中进行操作。perform 方法将保证所有的操作都在正确的队列中进行。...SwiftUI ,视图的 body 被标注为 @MainActor ,因此建议使用 Task.detached 来确保非主线程上创建使用私有队列的 ModelContext。...总结 或许有人会和我一样,了解了 SwiftData 新的并发编程方式后,欣喜之余会有一种说不出来的感觉。经过了一段时间的思考,似乎找到了这种异样感觉的原因 —— 代码风格。

29830
领券