【发布时间】:2014-06-04 20:51:02
【问题描述】:
我有以下代码。 prompt 是 UIAlertController。
self.presentViewController(prompt, animated: true, completion: {
prompt.textFields[0].becomeFirstResponder()
})
但它给了我这个错误:Could not find member 'becomeFirstResponder'。
但是,如果我把它放进去就可以了:
self.presentViewController(prompt, animated: true, completion: {
let foo = 0
prompt.textFields[0].becomeFirstResponder()
})
为什么当我添加上面这样的无用代码行时错误消失了?
【问题讨论】:
-
嗯,是的。我是这么想的。我打算为此提交一份错误报告。如果我听到任何消息,我会更新问题。
-
顺便说一句,出现错误的原因是因为 AnyObject 不知道“becomeFirstResponder”。仍然没有回答为什么 foo 行可以解决这个问题。
-
@Lucas AnyObject 是从哪里来的?
prompt声明在这段代码的正上方 (var prompt = UIAlertController...) -
@Newbzors 它带有 textFields 数组。由于 textFields 只是一个 NSArray,这意味着它可以容纳任何对象。因此,通过访问该数组的第 0 个索引,它不能推断它是一个 UITextField。同样,这并不能回答为什么 'let foo = 0' 行修复它,我只是说明为什么我认为该行会抛出“找不到成员 'becomeFirstResponder'”错误。
-
@Lucas 啊,我明白你的意思了