【发布时间】:2016-03-16 14:34:32
【问题描述】:
这个错误我有一些问题:
ProjectName.ViewController textAction:]: unrecognized selector sent to instance 0x7fa60bc3840
当我尝试创建警报时出现错误。这是代码:
@IBAction func trySearch(sender: UIButton) {
self.api.getUser(self.textField.text!) { isResponse in
if (isResponse.count == 0) {
//Still crash HERE.
let alert = UIAlertController(title: "Error", message: "This username doesn't exist", preferredStyle: UIAlertControllerStyle.Alert)
alert.addAction(UIAlertAction(title: "Ok", style: UIAlertActionStyle.Default, handler: nil))
self.presentViewController(alert, animated: true, completion: nil)
}
else {
print("existing username")
}
}
如果我评论所有警报代码并用简单的打印替换它就可以了...我真的不明白为什么...谢谢!
getUser 函数:
func getUser(user: String, completion: ((isReponse: AnyObject) -> Void)) {
let request = NSMutableURLRequest(URL: NSURL(string: "https://********")!)
request.HTTPMethod = "GET"
request.setValue("Bearer \(self.loadToken())", forHTTPHeaderField: "Authorization")
Alamofire.request(request)
.responseJSON { response in
switch response.result {
case .Success(let JSON):
completion(isReponse: JSON)
case .Failure(let error):
print("Request failed with error: \(error)")
}
}
}
更新:当我点击我的 TextField 的“完成”时出现同样的错误。 + 我添加了 getUser 函数。
【问题讨论】:
-
附注:按照惯例,您应该将函数名写成小写
func search(sender ... -
她在我的代码中是小写的,只是在这里我不知道为什么。已编辑:)
-
嘿@Makaille,您在 else 块中的警报代码非常完美,并且可以正常工作。
我无法理解您的代码部分response in if response.boolValue == true { /* ... */ } else { } -
你好,@AvinashJadhav getUser 将返回真或假,如果用户存在与否。如果我的用户存在,我会做一些事情,比如为其他视图准备数据等,如果不存在,我只想创建警报。是不是更清楚了?
-
response in if response.boolValue == true { }正在制作单行代码语句并且看起来不正确。因为response in if { }看起来是正确的。我认为它应该类似于语法object in objectArray,即循环执行。所以请确保同一行在语法上是正确的。