SWIFTUI Core Data 传递数字

Posted

技术标签:

【中文标题】SWIFTUI Core Data 传递数字【英文标题】:SWIFTUI Core Data passing numbers 【发布时间】:2020-01-26 03:06:54 【问题描述】:

如何在 SWIFTUI 中通过 CoreData 使用这些数字进行计算?我在 CoreData 模型中创建了实体。实体是文章,我有 2 个属性,一个是字符串名称,另一个是价格,它是一个 Double。

import Foundation
import CoreData

public class Article:NSManagedObject, Identifiable

    @NSManaged public var name:String?
    @NSManaged public var price:String?


extension Article 

    static func getAllArticles() -> NSFetchRequest<Article>

        let request:NSFetchRequest<Article> = Article.fetchRequest() as! NSFetchRequest<Article>

        let sortDescriptor = NSSortDescriptor(key: "name", ascending: true)

        request.sortDescriptors = [sortDescriptor]

        return request
     

这是我的类,将它们作为字符串传递不是问题,我也可以使用它们,但我想在收藏视图中进行计算,例如在收藏视图中我想计算 4 件的价格,但我不能这样做,因为它们是字符串。

提前致谢

【问题讨论】:

如果你想让 price 成为双精度字符串,为什么要让它成为一个字符串? 【参考方案1】:

我不知道您为什么将价格设为字符串。也许你有一些理由这样做。您可以通过将 String 转换为 Double 来计算金额。例如(对于 SwiftUI,Swift 5):

 func sumAmount() -> Double
               var sum: Double = 0.0
               let allArticles = getAllArticles()
               for result in allArticles 
                   let pQ = result.value(forKey: "price") as! String
                   sum += Double(pQ) ?? 0.0
               
               return sum
           

【讨论】:

以上是关于SWIFTUI Core Data 传递数字的主要内容,如果未能解决你的问题,请参考以下文章

如何从存储在 Core Data SwiftUI 中的数据计算平均值

SwiftUI - Core-Data - 在这种特殊情况下访问包装的值

Core Data 更改时更新 Swiftui 视图

Core Data - 数据传输 SwiftUI

SwiftUI 将 Core Data 实体读入 []

SwiftUI + Core Data - 更新对象(Detail -> DetailEdit)