首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >alertView现在是alertController

alertView现在是alertController
EN

Stack Overflow用户
提问于 2016-05-22 17:19:17
回答 3查看 2.2K关注 0票数 1

我试图在iOS中完成我的登录页面,在我将alertView更改为alertController之后,页面上写着“'UIAlertController‘类型的值没有成员'show'”。

我的代码是:

代码语言:javascript
复制
if ( username.isEqualToString("") || password.isEqualToString("") ) {

        var alertView:UIAlertController = UIAlertController()
        alertView.title = "Sign Up Failed!"
        alertView.message = "Please enter Username and Password"
        alertView.delegate = self
        alertView.addButtonWithTitle("OK")
        alertView.show()
    } else if ( !password.isEqual(confirm_password) ) {

        var alertView:UIAlertController = UIAlertController()
        alertView.title = "Sign Up Failed!"
        alertView.message = "Passwords doesn't Match"
        alertView.delegate = self
        alertView.addButtonWithTitle("OK")
        alertView.show()
    } else {

我发现了错误:

'UIAlertController‘没有成员’show‘和'UIAlertController’类型的值没有成员‘委托’等等。

此外,由于我将其更改为alertController,这部分代码也出现了错误:

代码语言:javascript
复制
var urlData: NSData? = NSURLConnection.sendSynchronousRequest(request, returningResponse:&response, error:reponseError)

    if ( urlData != nil ) {
        let res = response as! NSHTTPURLResponse!;

        NSLog("Response code: %ld", res.statusCode);

        if (res.statusCode >= 200 && res.statusCode < 300)
        {
            var responseData:NSString  = NSString(data:urlData!, encoding:NSUTF8StringEncoding)!

            NSLog("Response ==> %@", responseData);

            var error: NSError?

            let jsonData:NSDictionary = NSJSONSerialization.JSONObjectWithData(urlData!, options:NSJSONReadingOptions.MutableContainers , error: &error) as! NSDictionary

声明“调用中的额外参数‘错误’”,但是如果我删除了错误,那么它只会给我一个不同的错误,希望我删除)并添加一个,连续!

谢谢!

EN

回答 3

Stack Overflow用户

发布于 2016-05-22 17:38:18

UIAlertViewUIAlertController的类是完全不同的,是而不是可互换的

UIAlertController的等效代码是

代码语言:javascript
复制
let alertController = UIAlertController(title: "Sign Up Failed!", 
                                      message: "Please enter Username and Password", 
                               preferredStyle: .Alert)
let okAction = UIAlertAction(title: "OK", style: .Default, handler: nil)
alertController.addAction(okAction)
self.presentViewController(alertController, animated: true, completion: nil)

要解决extra argument error,需要使用Swift 2的新错误处理语法

代码语言:javascript
复制
do {
   let jsonData = try NSJSONSerialization.JSONObjectWithData(urlData!, options:.MutableContainers) as! [String:AnyObject]
} catch {
    print(error)
}

如果不能保证jsonData成为字典(最好使用Swift本机类型),则需要额外一行来检查带有可选绑定的类型

代码语言:javascript
复制
do {
   let jsonData = try NSJSONSerialization.JSONObjectWithData(urlData!, options:.MutableContainers)
   if jsonDict = jsonData as? [String:AnyObject] {
      // do something with the dictionary
   }
} catch {
    print(error)
}

PS:username.isEqualToString("")的一个更简单的语法是username.isEmpty

票数 2
EN

Stack Overflow用户

发布于 2016-05-22 17:31:47

您必须将其呈现为UIViewController:

代码语言:javascript
复制
self.presentViewController(alertView, animated: true, completion: nil)
票数 0
EN

Stack Overflow用户

发布于 2019-01-01 13:02:30

如果您创建一个没有任何操作按钮的警报框,请尝试以下代码。

代码语言:javascript
复制
let alertController = UIAlertController(title: "Alert", message: "This is an alert.", preferredStyle: .alert)


self.present(alertController, animated: true, completion: nil)

如果创建带有操作按钮的警报框,请尝试以下代码。

代码语言:javascript
复制
let alertController = UIAlertController(title: "Alert", message: "This is an alert.", preferredStyle: .alert)

let action1 = UIAlertAction(title: "Default", style: .default) { (action:UIAlertAction) in
    print("You've pressed default");
}

let action2 = UIAlertAction(title: "Cancel", style: .cancel) { (action:UIAlertAction) in
    print("You've pressed cancel");
}

let action3 = UIAlertAction(title: "Destructive", style: .destructive) { (action:UIAlertAction) in
    print("You've pressed the destructive");
}

alertController.addAction(action1)
alertController.addAction(action2)
alertController.addAction(action3)
self.present(alertController, animated: true, completion: nil)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37377297

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档