【发布时间】:2017-04-13 02:52:23
【问题描述】:
我在 UIView 类中全局初始化了变量。
变量是statusLabel 作为字符串。我在 Pickerview didSelectRow 委托方法中为 statusLabel 分配了一个值。
我得到了字符串的值。但是当委托完成时,字符串的值更改为nil
所有其他全局初始化变量都是一样的。 可能是什么原因?
提前致谢
class CustomPickerMenu: UIView,UIPickerViewDataSource,UIPickerViewDelegate
{
var statusLabel = String()
var pickerArray = [String]()
required init?(coder aDecoder: NSCoder)
{
pickerArray = ["None","Connections","All"]
super.init(coder: aDecoder)
print("Awake with coder")
}
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int)
{
if(row == 0)
{
statusLabel = pickerArray[row]
}
if(row == 1)
{
statusLabel = pickerArray[row]
}
if(row == 2)
{
statusLabel = pickerArray[row]
}
print("statusLabel : " + statusLabel)
}
@IBAction func saveStatus(_ sender: Any)
{
delegate?.statusChange(controller: self, text:statusLabel)
self.delegate?.showNavigationController(controller: self)
print("statusLabel : " + statusLabel)
}
【问题讨论】:
-
用实际代码代替图片
-
1.正如上面评论中提到的@Rajat,添加代码而不是图像。 2. 在你实际尝试访问变量的地方添加代码,发现它为空。
-
这里是完整的代码
-
我已编辑您的问题,只保留相关代码。将来,请不要在不需要时在问题中添加“完整”代码。尽量让人们更容易理解您的问题。
-
字符串的值变为'nil'是什么意思?它不是可选变量,因此它不能为零。您遇到错误或崩溃了吗?