Swift 为什么这个常量不打印到控制台?它只是一片空白
下面是一个更大的应用程序的代码片段。 此函数(在单击按钮时调用)仅计算从选择器中选择的选择并为其分配字符串 并获取用户在文本字段中键入的输入 该部分工作正常,甚至可以指定在选择器中选择的正确字符串 我通过在控制台中打印所选的字符串来测试这一点,所以这一切都很好,但是我尝试在if/else结构之后打印该字符串,它只打印一个空白 无法理解subjectField在通过if/else时打印得很好-因此逻辑工作。。。但是我试着在逻辑之后打印,它只打印一个空行或回车(我在打印(subjectField)之后添加了另一个打印语句),上面有一个空白,打印得很好 虽然这可能是一个可变的问题,但尝试生成全局变量,然后决定尝试此asa函数,该函数正在工作,但为什么在heck id subjectField中,当它在else if(如果)但不是之后进行迭代时,会更正它 我肯定我错过了一些简单的事情Swift 为什么这个常量不打印到控制台?它只是一片空白,swift,variables,if-statement,Swift,Variables,If Statement,下面是一个更大的应用程序的代码片段。 此函数(在单击按钮时调用)仅计算从选择器中选择的选择并为其分配字符串 并获取用户在文本字段中键入的输入 该部分工作正常,甚至可以指定在选择器中选择的正确字符串 我通过在控制台中打印所选的字符串来测试这一点,所以这一切都很好,但是我尝试在if/else结构之后打印该字符串,它只打印一个空白 无法理解subjectField在通过if/else时打印得很好-因此逻辑工作。。。但是我试着在逻辑之后打印,它只打印一个空行或回车(我在打印(subjectField)之
@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中的字符串保留在那里……执行此操作时不要变为空,它在当前作用域中声明一个新变量
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 "
}
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 "
}
如果没有名为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 "
}
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 "
}
可以肯定的是,
subjectField
是不能打印的吗?您发布的代码不应该编译。您是否有另一个名为subjectField
的变量?可能是在包含此函数的类上?我只需要像您显示的那样去掉var-我知道它很简单