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

SwiftUI & CoreData:如何计算“真”布尔值的数量并在VGrid中显示结果

SwiftUI是一种用于构建用户界面的现代化框架,而CoreData是苹果提供的一种数据持久化框架。在SwiftUI中,我们可以使用CoreData来管理和操作数据。

要计算“真”布尔值的数量并在VGrid中显示结果,我们可以按照以下步骤进行操作:

  1. 创建一个CoreData模型,其中包含一个布尔类型的属性。可以使用Xcode的数据模型编辑器来创建模型,并定义相应的实体和属性。
  2. 在SwiftUI中,使用@FetchRequest属性包装器来获取CoreData中的数据。这将返回一个包含所有实体对象的数组。
  3. 使用filter方法过滤出布尔属性为真的对象,并使用count方法计算数量。
  4. 在VGrid中使用ForEach循环遍历过滤后的对象数组,并显示结果。

下面是一个示例代码:

代码语言:txt
复制
import SwiftUI
import CoreData

struct ContentView: View {
    @Environment(\.managedObjectContext) private var viewContext
    
    @FetchRequest(
        sortDescriptors: [],
        animation: .default)
    private var items: FetchedResults<Item>
    
    var body: some View {
        VStack {
            Text("真布尔值的数量:\(trueCount)")
            
            VGrid(items, columns: [GridItem(.flexible()), GridItem(.flexible())]) { item in
                Text(item.name ?? "")
            }
        }
    }
    
    private var trueCount: Int {
        items.filter { $0.isTrue }.count
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView().environment(\.managedObjectContext, PersistenceController.preview.container.viewContext)
    }
}

在上述示例中,我们假设有一个名为Item的实体,其中包含一个名为isTrue的布尔属性。我们使用@FetchRequest属性包装器获取所有Item对象,并使用trueCount计算属性来获取真布尔值的数量。最后,在VGrid中使用ForEach循环遍历Item对象,并显示其名称。

请注意,上述示例中的代码仅用于演示目的,实际使用时需要根据自己的数据模型进行相应的修改。

推荐的腾讯云相关产品:腾讯云数据库(https://cloud.tencent.com/product/cdb)可以用于存储和管理数据,腾讯云云服务器(https://cloud.tencent.com/product/cvm)可以用于部署和运行应用程序。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Ask Apple 2022 与 Core Data 有关问答

如果你对查询有特别的需求的话,可以将枚举类型关联数据打散,在实体,将所有的关联值都定义成属性,并增加一个与枚举对应类型属性,在托管对象定义一个枚举类型计算属性,通过它对数据进行转换。...SwiftUI如何使用 FetchedResultsControllerQ:是否有在 SwiftUI 应用程序中使用 Core Data 任何实践或建议?...例如,FetchedResultsController 是否有对应 SwiftUI 版本?A:在 SwiftUI 中使用 CoreData 没有问题。...这似乎值得一个错误报告使用 NSExpressionDescription ,可以在 SQLite 对记录进行一定计算,并将计算结果通过 NSFetchRequestResult 进行返回。...动态修改 @FetchRequest 配置Q:在 SwiftUI 应用程序如何基于 @AppStorage 值创建 @FetchRequest?

2.8K20

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

如何在Xcode下预览含有Core Data元素SwiftUI视图 从SwiftUI诞生之日起,预览(Canvas Preview )一直是个让开发者又爱又恨功能。...结合两年来我在SwiftUI中使用Core Data经验和教训,我们将在本文中探讨: •导致SwiftUI预览崩溃部分原因•如何在之后开发避免类似的崩溃出现•如何在Xcode安全可靠地预览含有...预览模拟器不支持控制台输出显示、不支持断点调试,即使在动态预览模式下(支持交互预览模式),我们也不会在Xcode获得任何代码控制台输出内容。因此在预览发生问题时,用于排查故障手段很有限。...尽管SwiftUIRedux模式有诸多优点,但由于只存在视图这一种表现形式,因此在视图描述中经常会参杂不少数据计算、整理工作。...我目前在开发使用SwiftUI+CoreData应用程序时,将CoreData部分开发同应用程序UI构建是完全分离

5.1K10

使用 SwiftUI 创建一个灵活选择器

在使用 UIKit 时,我总是将这种类型视图实现为具有特定 UICollectionViewFlowLayout UICollectionView。但在 SwiftUI 如何实现呢?...所有符合该协议对象必须实现两个属性:displayedName(在选择器显示名称)和 isSelected(一个布尔值,指示特定选项是否已选择)。...行宽减去项宽结果是否大于0。...VStack 高度是根据两个值计算: 输入数据任何项目的高度(类似于宽度计算,通过使用 reduce 函数,总结与项目相关所有高度) 将显示在 VStack 行数 private func...然后,详细介绍了实现该选择器逻辑,包括如何处理选项布局、宽度和高度,以及如何处理用户与按钮交互。 最后,提供了一个简单视图实现,可以在 SwiftUI 中使用该选择器。

24920

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

A:在初始数据获取完成后,@FetchRequest 成本与结果变化多少有关,而手动重新获取成本与结果总数有关。...在应用程序中一次性加载 CoreData 数据并将其保存在局部变量中使用多个 FetchRequests我目前在 SwiftUI 中使用 UICalendarView 并从 CoreData 获取数据...我也不确定 Category/Extension 作用以及如何在它和 Class 之间进行选择?A:大多数人会使用 Class,并在他们自己托管对象扩展添加他们需要任何自定义方法。...改成 String;2、声明一个非可选值计算属性,并在其中对可选值属性值进行处理;3、将托管对象实例整体转换成对 SwiftUI 视图更加友好值类型。...A:对于排序改变,关系两边都会显示为 NSPersistentHistoryChange,并在 updatedProperties 列出关系。

3.2K20

Swift 周报 第十八期

ReducerProtocol 创建alert回调触发操作[6] 讨论键路径与闭包代码大小差异[7] 讨论将 Objective-C 代码库迁移到 Swift[8]Steve Barnegren...协议一致性可以在定义类型模块之外定义,这很自然地得出结论:这样协议如何添加存储?您能做最好事情就是让协议要求您类型具有存储空间。您类型定义仍然必须实际定义该存储。...讨论状态初始化器 UUID[11] 讨论对于金融计算用 Decimal 还是 Double[12] 推荐博文 在 SwiftUI 开发灵动岛[13] 摘要: 本文将详细介绍使用 WidgetKit...使用此框架我们可以在锁定屏幕或者灵动岛上显示实时活动。 话题讨论 世界杯你赚钱了吗? 14 亿人为什么选不出一支十多人优秀团队?到底是哪里出了问题?元芳,你怎么看?国足⚽️未来在哪里?...: https://forums.swift.org/t/dangling-pointer-from-array/61609 [6]如何从 ReducerProtocol 创建alert回调触发操作

1.9K20

在 Core Data 查询和使用 count 若干方法

在 Core Data ,开发者经常需要面对查询记录数量(count),使用 count 作为谓词或排序条件等需求。...在 SwiftUI 下,使用@FetchRequest 获取结果集,也可以使用上述方式。 如果设置了 fetchLimit ,可能无法获得正确 count 结果。...设置 fetchLimit 后将只返回不超过设定数量结果。...四、获取单条记录某对多关系 count 数据 如果你对象模型设置了对多关系,调用关系属性 count 方法,可以获取单条记录某对多关系对象数量。...直接在 SQLite 处理,效率将高于在代码对方法十一结果集数组进行操作。 总结 本文介绍方法,无所谓孰优孰劣,每种方法都有其适合场景。

4.6K20

SwiftUI 与 Core Data —— 安全地响应数据

本文将介绍可能在视图中产生严重错误原因,如何避免,以及在保证视图对数据变化实时响应前提下如何为使用者提供更好、更准确信息。由于本文会涉及大量前文中介绍技巧和方法,因此最好一并阅读。...):image-20221212092612578image-20221212092628708开发者可以通过为托管对象声明计算属性实现在 NSNumber? 与 Int16? 之间转换。...也就是说,如果一个用于显示托管对象实例数据视图被销毁了,那么假如没有其他视图或代码引用视图中显示托管对象实例,托管上下文将从内存中将这些数据占用内存释放掉。....now) } }}coreData-optional-demo4_2022-12-12_14.20.17.2022-12-12 14_21_06在视图之外传递值类型在上节代码,...下文介绍在下篇文章,我们将探讨有关模块化开发问题。如何将具体托管对象类型以及 Core Data 操作从视图、Features 解耦出来。希望本文能够对你有所帮助。

3.2K20

SwiftUI:alert() 和 sheet() 与可选值一起使用

SwiftUI有两种创建警报和表单方式,到目前为止,我们仅使用一种方法:绑定到布尔值,该布尔值在变为 true 时显示 Alert 或 Sheet。...第二种方法并不经常使用,但是在您需要时候它确实有用:您可以使用可选Identifiable对象作为条件,并且当该对象具有值时将显示 Alert 或Sheet 。...= nil 现在,我们可以更改ContentViewbody,以便在点击其文本视图时将selectedUser设置为一个值,然后再为selectedUser提供值时使用alert(item:)显示警报...出现提示“Taylor Swift”警报。解除警报后,SwiftUI会将selectedUser设置为nil。 这似乎是一个简单功能,但是比其他功能更简单,更安全。...id)) } } } 那是另一个属性,在onTapGesture()设置另一个值,并在alert()修饰符强制展开——如果您可以避免这些事情的话那随你好了。

2.4K40

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

SwiftUI 视图生命周期研究[3] 一文,我对 List 如何对子视图显示进行优化做了一定介绍。...标识( Identity )是 SwiftUI 在程序多次更新识别相同或不同元素手段,是 SwiftUI 理解你 app 关键。...在 SwiftUI 为视图设置显式标识目前有两种方式: 在 ForEach 构造方法中指定 由于 ForEach 视图数量是动态且是在运行时生成,因此需要在 ForEach 构造方法中指定可用来标识子视图...,并在首次滚动到列表底部时也没有延迟。...升降序切换 对数据进行降序显示且仅允许使用者手工滚动列表。系统邮件、备忘录等应用均采用此种方式。

9.1K20

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

Table 中上下文菜单Q:如果我在 TABLE 上添加了一个上下文菜单,我如何确定哪一行导致了菜单显示(无需选择该行)?...,只提取你需要属性,并依靠 SwiftUI equality 检查来提前中止无效计算苹果工程师给出答案与 避免 SwiftUI 视图重复计算[5] 一文很多建议都一致。...Swiftcord[12] 代码展示了如何SwiftUI 下实现倒置列表。阅读 优化在 SwiftUI List 显示大数据集响应效率[13] 一文,了解苹果工程师推荐方法。...连锁动画Q:在 SwiftUI 如何实现连锁动画?例如,我想先给一个视图做动画,当动画完成后立即启动另一个动画。A:不幸是,目前不可能实现连锁动画。...Too complex to type checkQ:我在 iOS 14 SwiftUI 遇到一个问题,我试图有条件地显示 3 个符合 Shape 协议对象一个。

14.7K30

SwiftUI Overlay Container 2 —— 可定制、高效、便捷视图管理器

SwiftUI ,描述视图已经变得十分容易,因此我们完全可以将上述场景显示逻辑提炼出来,创建出一个可以覆盖更多使用场景库,帮助开发者组织视图显示风格和交互逻辑。...功能与特性 支持多个容器 单一容器内支持多个视图 可在 SwiftUI 视图代码内或视图代码外向任意指定容器推送视图 可以动态修改容器配置(除了队列类型) 容器内视图有多种排列方式 有多种队列类型以指导容器如何显示视图...当给定视图数量超过了容器设定最大视图数量时,超过视图会暂存在等待队列并在显示视图取消后,逐个递补。 multiple oneByOne 同一时间只能在容器显示一个视图。...使用者通过调用容器管理器特定方法,让指定容器执行显示视图、撤销视图等工作。 容器管理器环境值 在 SwiftUI ,视图代码通过环境值调用容器管理器。...) 撤销除了指定容器外其他所有容器视图,当 onlyShow 为时,仅撤销正在显示视图。

2.1K20

ObservableObject研究

之后我也继续学习了一些有关资料,并通过阅读Github上不少开源范例,基本对这一方式有所掌握,并在健康笔记得以应用。...更详细分析请参见 @State研究 即使你只在View中发送action,并没有显示State数据或使用其做判断,该View也会被强制刷新。...我估计应该是解析DSL本身工作量非常大,我们在View body看起来不多描述语句,其实后面对应是非常多具体代码。Xcode代码提示总会超出了它合理计算时间而导致故障。...尤其State本来很多数据变化性是不高,大量View只需要使用变化性低数据,但只要State发生任何改动,都将被迫重绘。 如何改善 在发现了上述问题后,开始逐步尝试找寻解决途径。...FetchRequest完全可以实现同其他CoreData NSFetchRequest一样程序化Request设定,结合上面的方式同样可以将Request生成器放在Store而不影响当前View。

2.4K60

架构之路 (七) —— iOS AppSOLID原则(一)

开始 首先看下主要内容: SOLID 是一组原则,可引导您编写清晰有序代码,而无需额外努力。 了解如何将其应用于您 SwiftUI iOS 应用程序。内容来自翻译。...这是应用程序第一个视图,您可以在其中选择要显示费用报告类型:每日或每月。 假设您想添加本周报告。...删除它们并在 Storage 组创建一个名为 Persistence.swift 新 Swift文件。...你需要内存存储来在 SwiftUI 预览显示虚假数据。...对于 SwiftUI 预览,您将始终显示日常开支。 只需更改数据源类型,您就可以使视图更加通用。 这显示了这两个文件中有多少代码重复。 现在,即使您创建了一般视图,您仍然没有在任何地方使用它。

4.7K10

WWDC 23 ,SwiftUI 5 和 SwiftData 初印象

苹果不仅带来了全新形态硬件产品,还推出了几个相当震撼新框架。本文将聊聊我对本届 WWDC SwiftUI 5.0 和 SwiftData 初步印象。...这从根本上解决了当前影响 SwiftUI 应用( 过渡计算效率问题。让开发者可以更加自由来设计数据结构以及随心所欲注入数据源。 不过很遗憾,这项新特性只能在 SwiftUI 5 上实现。...,直接定位到滚动视图特定位置,只能使用一次 )、全新滚动条控制( 闪烁 )、可自定义行视图在滚动区域顶端和显示区域显示状态( 例如可用其实现类似 watchOS 滚动到顶端子视图缩小视觉效果...com.apple.CoreData.ConcurrencyDebug 1 后,即使在新 Context 中使用 transaction 尝试保持线程一致,仍会强制报错(即使是在一个新创建 actor...开心还是无奈 在今年 WWDC ,苹果为 SwiftUI 带来了非常大变革,并推出了开发者向往已久 SwiftData。

35410

WWDC 23 ,SwiftUI 5 和 SwiftData 初印象

苹果不仅带来了全新形态硬件产品,还推出了几个相当震撼新框架。本文将聊聊我对本届 WWDC SwiftUI 5.0 和 SwiftData 初步印象。...这从根本上解决了当前影响 SwiftUI 应用( 过渡计算效率问题。让开发者可以更加自由来设计数据结构以及随心所欲注入数据源。 不过很遗憾,这项新特性只能在 SwiftUI 5 上实现。...,直接定位到滚动视图特定位置,只能使用一次 )、全新滚动条控制( 闪烁 )、可自定义行视图在滚动区域顶端和显示区域显示状态( 例如可用其实现类似 watchOS 滚动到顶端子视图缩小视觉效果...com.apple.CoreData.ConcurrencyDebug 1 后,即使在新 Context 中使用 transaction 尝试保持线程一致,仍会强制报错(即使是在一个新创建 actor...开心还是无奈 在今年 WWDC ,苹果为 SwiftUI 带来了非常大变革,并推出了开发者向往已久 SwiftData。

1.1K20

iOS开发之表视图爱上CoreData

2.数据结构我们设计好了,那么如何用代码生成我们测试数据(数据组织形式如上图所示),下面的代码就是生成我们要在tableView显示数据,生成数组存储在tableArray,代码如下: 1...下面将要介绍才是这篇博客重点:我们如何使用CoreData才会让TableView爱上它呢?...往sqlite添加数据,要想在我们TableView显示还需要通过CoreData把我们存储在sqlite数据来查询出来,再用CoreData给我们提供方法把查询结果做一个转换,转换成适合...return cell; } ​   (4) 经上面的代码,我们就可以通过CoreData查询sqlite, 然后把查询测数据结果显示到TableView,可是上面的代码有个问题,就是当通过CoreData...因此TableView深爱着CoreData. 上面我们完成了通过CoreData来对数据插入和查询并同步到TableView,下面将会介绍到如何对我们Cell进行删除。

2.1K80

揭秘 SwiftData 数据建模原理

本文将深入探讨 SwiftData 是如何通过代码创建数据模型,使用了哪些新语言特性,并展示了如何通过声明代码来创建 PersistentModel 实例。...在 SwiftDataKit:让你在 SwiftData 中使用 Core Data 高级功能[3] 一文,我介绍了如何调用 SwiftData 元素背后对应 Core Data 对象技巧。...这种命名方式体现了这些框架与 Swift 语言紧密结合。为了实现这些框架,苹果还积极推动 Swift 语言发展,提出新提案,并在框架预先应用了尚未完全确定特性。...Item { // 用户定义持久化属性 public var timestamp: Date = Date.now { // 构造器访问器,在构造实例过程,为计算属性添加构造能力...这样,在初始化方法可以直接对计算属性赋值,它会转化成对应存储属性初始化值。

33520

老人新兵 —— 一款 iOS APP 开发手记

有以下几个难点:SwiftUI 功能十分有限在真正要实现诸多功能时发现,目前很多场景下仍然要通过 UIKit 才能完成,为此又耗费了些心力学习了点 UIKit 内容( 至少需要掌握两者之间如何混合使用...SwiftUI 和 Combine Bug 太多尽管做好新产品并不完善准备,不过 bug 数量还是远远多于我预期。...这也是目前 SwiftUI 控件显示设定一个问题( 主要是官方并不推荐和支持这样行为 ),各个 view 如果通过 UIKit 修改设定的话,之间不隔离。...@FetchRequest 目前只能在 init 通过参数动态设置一次( 无法动态修改 ),如果需要显示不同谓词或排序结果,只能通过上层视图重新设置。...CoreData 很好用,原生 iOS 程序还是可以多多考量它。尾声一不小心就乱写了一大堆,就当是对这几个月一个简单小结吧。

2.5K40

SwiftUI 布局 —— 尺寸( 上 )

但由于 SwiftUI 视图并没有提供尺寸这一属性,因此即使在 SwiftUI 诞生了数年后今天,如何获取视图尺寸仍然是网络上热门问题。...淡化尺寸概念初衷或许是出于以下两点: 引导开发者转型到声明式编程逻辑,转变使用精准尺寸习惯 掩盖 SwiftUI 复杂尺寸概念,减少初学者困扰 但无论如何淡化或掩盖,当涉及更加高级、复杂、精准布局时...SwiftUI 布局过程速览 SwiftUI 布局就是布局系统通过为视图树上节点提供必要信息,最终计算出每个视图( 矩形 )所需尺寸以及摆放位置行为。...因此,为了简化文字,我们在文章中会将父视图与具备布局能力容器等同起来。 不过需要注意是,在 SwiftUI ,有一类视图是会在视图树上显示为父视图,但并不具备布局能力。...这类视图主要作用有: 突破 ViewBuilder Block 数量限制 方便为一组视图统一设置 view modifier 有利于代码管理 其他特殊应用,如 ForEach 可支持动态数量子视图等

4.7K20
领券