这是更大应用程序中的代码片段。 此函数(在单击按钮时调用)只是评估从选择器中选择了哪个选择,并为其分配一个字符串 并获得用户在文本字段中输入的输入
该部分可以正常工作,甚至可以分配在选择器中选择的正确字符串
我通过在控制台中打印选定的字符串来对此进行测试-因此一切都很好,但是我然后尝试在if / else结构之后打印该字符串,并且只打印空白
无法弄清楚subjectField在通过if / else时可以很好地打印-以便逻辑工作...但是我尝试在thelogic之后打印,并且它仅打印空白行或回车符(我添加了另一个打印语句在打印(subjectField)之后,并且打印良好,上面有空白。
认为尝试制作全局变量可能是一个可变问题,然后决定尝试将此函数作为有效的函数尝试,但是为什么在遍历其他对象(如果但不是之后)的时候,为什么在idID字段中正确呢?
我确定我缺少简单的东西。...
@IBAction func sendButtonPressed(_ sender: UIButton) {
determineSelRequest(selectedReq: pickedRequest.selectedRow(inComponent: 0), selectedFlightNumber: enteredFlightNumber.text!)
}
func determineSelRequest(selectedReq: Int, selectedFlightNumber: String) {
var selectedRequest = pickedRequest.selectedRow(inComponent: 0)
if selectedRequest == 0 {
var subjectField = "Fltsum "
print (subjectField)
} else if selectedRequest == 1{
var subjectField = "Crew "
//print (selectedRequest)
} else if selectedRequest == 2{
var subjectField = "EDCT "
//print (subjectField)
} else if selectedRequest == 3 {
var subjectField = "Loads "
//print (subjectField)
} else if selectedRequest == 4 {
var subjectField = "Times "
//print (subjectField)
}
var selectedFlightNumber : String = enteredFlightNumber.text!
// print ("now we just have to send mail")
print (selectedFlightNumber)
print (subjectField)
//sendEmail()
}
想要将else / if逻辑放入subjectField中的字符串留在此处......不要空白
答案 0 :(得分:1)
执行var subjectField = "x"
时,它将在当前作用域中声明一个新变量subjectField
。在这种情况下,范围是在其中定义的if语句。这意味着if
完成后,变量及其内容不再存在。
但是,由于您的代码已编译,因此我猜您在某处还有一个名为subjectField
的变量。如果是这样,则只需按如下所示分配该变量即可:
if selectedRequest == 0 {
subjectField = "Fltsum "
} else if selectedRequest == 1{
subjectField = "Crew "
} else if selectedRequest == 2{
subjectField = "EDCT "
} else if selectedRequest == 3 {
subjectField = "Loads "
} else if selectedRequest == 4 {
subjectField = "Times "
}
如果您没有名为“ subjectField
”的“全局”变量,则可以按以下方法解决此问题:
var subjectField: String?
if selectedRequest == 0 {
subjectField = "Fltsum "
} else if selectedRequest == 1{
subjectField = "Crew "
} else if selectedRequest == 2{
subjectField = "EDCT "
} else if selectedRequest == 3 {
subjectField = "Loads "
} else if selectedRequest == 4 {
subjectField = "Times "
}