我实际上正试图接近一个带有假日检查清单(HolidayTVC)的小应用程序。
为此,我配置了以下内容:
func configuredMailComposeViewController() -> MFMailComposeViewController {
var row = ""
for cell in tableView.visibleCells() as! [HolidayTVCell] {
var name = cell.labelName.text
var toDo = cell.labelDetail2.text
var plantimg = cell.imagePlant.image
var newlineimg = "picture\n"
var newlineplant = name! + "<br>" + toDo
var row = (row + newlineimg + newlineplant) as String
}
var mail = row
println(row)
let mailComposerVC = MFMailComposeViewController()
mailComposerVC.mailComposeDelegate = self
mailComposerVC.setToRecipients(["example@mail.com"])
mailComposerVC.setSubject("Holiday Plan")
mailComposerVC.setMessageBody(mail, isHTML: true)
return mailComposerVC
}
for循环的输出为零。我无法打印一条线。也许我对此的态度非常老派,因为我已经习惯了其他语言。
谢谢! 丹
答案 0 :(得分:1)
我很高兴Losiowaty解决了你的直接问题,但我不建议迭代visibleCells
。如果有多于目前可见的项目怎么办?
通常,您不应该从UI控件中提取数据。该应用程序可能有一些用于填充单元格的模型数组,因此在发送此电子邮件时,应用程序应该返回到该模型数组并从那里提取数据。不要从细胞中提取数据。
答案 1 :(得分:0)
var row = ""
for cell in tableView.visibleCells() as! [HolidayTVCell] {
var name = cell.labelName.text
var toDo = cell.labelDetail2.text
var plantimg = cell.imagePlant.image
var newlineimg = "picture\n"
var newlineplant = name! + "<br>" + toDo
var row = (row + newlineimg + newlineplant) as String // <<--- issue here!
}
var mail = row
println(row)
问题在于标记线。您正在创建另一个row
变量,它隐藏了在循环外声明的变量。只需删除标记行中的var
,就可以了。