Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios “空时打开UIAlertViewController”&引用;排列_Ios_Arrays_Swift_Function_Button - Fatal编程技术网

Ios “空时打开UIAlertViewController”&引用;排列

Ios “空时打开UIAlertViewController”&引用;排列,ios,arrays,swift,function,button,Ios,Arrays,Swift,Function,Button,我正在尝试制作一个功能,这样当你按下一个按钮时,你就会打开餐馆的网站,它运行良好,但有些餐馆没有网站 var OnlineMenuLinks = ["https://static.wixstatic.com/media/ed1b11_59335d19e484482e8c0dc9ef0caee605~mv2.jpg/v1/fill/w_708,h_992,al_c,q_85/ed1b11_59335d19e484482e8c0dc9ef0caee605~mv2.jpg","","","http:/

我正在尝试制作一个功能,这样当你按下一个按钮时,你就会打开餐馆的网站,它运行良好,但有些餐馆没有网站

var OnlineMenuLinks = ["https://static.wixstatic.com/media/ed1b11_59335d19e484482e8c0dc9ef0caee605~mv2.jpg/v1/fill/w_708,h_992,al_c,q_85/ed1b11_59335d19e484482e8c0dc9ef0caee605~mv2.jpg","","","http://stackoverflow.com/"]

    @IBAction func OpenOnline(_ sender: Any) {

            let url = URL(string: OnlineLinks[MyIndex])!
            if #available(iOS 10.0, *) {
                UIApplication.shared.open(url, options: [:], completionHandler: nil)
            } else {
                UIApplication.shared.openURL(url)
            }
        }
链接目前已打开,一切正常。 虽然我希望当数组中有一个空的
时,UIAlertController会出现,并说例如“这家餐厅没有网站”。是否可能

谢谢你的帮助!:)

是的,这是可能的

      func open(_ url: URL?) {
        if let url = url {
            if #available(iOS 10, *) {
                UIApplication.shared.open(url, options: [:],completionHandler: { (success) in
                    print("Open Safari \(success)")
                })
            } else {
                let success = UIApplication.shared.openURL(url)
                print("Open Safari \(success)")
            }
        }else{

            let alert = UIAlertController(title: "Empty!", message: "This restaurant has no website.", preferredStyle: .alert)

            let okAction = UIAlertAction(title: "Ok", style: .default, handler: nil)

            alert.addAction(okAction)
            present(alert, animated: true, completion: nil)

        }
    }
是的,这是可能的

      func open(_ url: URL?) {
        if let url = url {
            if #available(iOS 10, *) {
                UIApplication.shared.open(url, options: [:],completionHandler: { (success) in
                    print("Open Safari \(success)")
                })
            } else {
                let success = UIApplication.shared.openURL(url)
                print("Open Safari \(success)")
            }
        }else{

            let alert = UIAlertController(title: "Empty!", message: "This restaurant has no website.", preferredStyle: .alert)

            let okAction = UIAlertAction(title: "Ok", style: .default, handler: nil)

            alert.addAction(okAction)
            present(alert, animated: true, completion: nil)

        }
    }

不要检查字符串的有效性。在您的情况下,每次
URL
无效时都应该显示一个错误(空
字符串
不会生成有效的
URL
实例)

如果
MyIndex
超过数组长度,可能需要检查数组计数

guard OnlineLinks.count > MyIndex else {
    // throw an error
}

不要检查字符串的有效性。在您的情况下,每次
URL
无效时都应该显示一个错误(空
字符串
不会生成有效的
URL
实例)

如果
MyIndex
超过数组长度,可能需要检查数组计数

guard OnlineLinks.count > MyIndex else {
    // throw an error
}

非常感谢。我使用@iWheelBuy代码打开链接,但我使用了您的UIAlertController,因此我可以忽略此消息:)谢谢!我使用@iWheelBuy代码打开链接,但我使用了您的UIAlertController,因此我可以忽略此消息:)