gpt4 book ai didi

ios - 如何使用核心数据类中的所有对象创建一个字符串

转载 作者:行者123 更新时间:2023-11-28 11:51:44 25 4
gpt4 key购买 nike

说明

在我的应用程序中,我想添加导出成员(member)数据的功能。我说的是成员(member)的所有交易。这就是我所拥有的,我希望我问的很清楚。我必须编辑什么,它有效吗?还是我的方式正确?

var str: [String] = []
for trans in (member?.transactions!)! {
let trnsctnr = trans.reason
let trnsctna = String(trans.money)
var trnsctnd = ""
if let trnsd = trans.date{
trnsctnd = dateFormatter.string(from: trnsd)
}
str = [trnsctnr, trnsctna, trnsctnd] as! [String]
}

此代码无效。我想将其添加到“MFMailComposerController”中,然后显示此错误:

Cannot convert value of type 'Never' to expected argument type 'String'

Core Data Model

所以我想导出成员(member)所做的所有交易的数据。

我作为计算属性做了什么:

struct stringForMFMail {
let trnsctnr = transaction?.reason
var trnsctna = ""
if let trns = transaction?.money {
trnsctna = String(trns)

}
var trnsctnd = ""
if let trnsd = transaction?.date{
trnsctnd = dateFormatter.string(from: trnsd)
}
let dataString = [trnsctnr, trnsctna, trnsctnd]


}

这根本不起作用,所以我确定我做的完全错了。有一些错误,例如:结构声明无法关闭在外部范围中定义的值“self”。这一小部分总共有 12 个错误,所以我确实做错了。

最佳答案

Transaction 类中添加此计算属性,它返回三个值 - 如果存在 - 以逗号分隔。

var stringForMFMail : String {
var result = self.reason ?? ""
result += "\(self.money)"

if let trnsd = self.date {
result += ", \(dateFormatter.string(from: trnsd))"
}
return result
}

Transaction 中也添加这个日期格式器

let dateFormatter : DateFormatter = {
let formatter = DateFormatter()
formatter.locale = Locale(identifier: "en_US_POSIX")
formatter.dateFormat = "dd:MM:yyyy"
return formatter
}()

现在你可以填充数组了

var mailStrings = [String]()
if let transactions = member?.transactions {
mailStrings = member.transactions.map{ $0.stringForMFMail }
}

如果你需要一个字符串,加入数组

let str = mailStrings.join(separator: ", ")

关于ios - 如何使用核心数据类中的所有对象创建一个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51825993/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com