迁移到 Xcode 7 后 UIAlertView 和 UIWebView 不起作用

Posted

技术标签:

【中文标题】迁移到 Xcode 7 后 UIAlertView 和 UIWebView 不起作用【英文标题】:UIAlertView and UIWebView don't work after migration to Xcode 7 【发布时间】:2015-10-04 18:28:06 【问题描述】:

我在 Xcode 7 中编写了以下 swift 代码,但在 ios 9.0 中不推荐使用“UIAlertView”。此外,webview 什么也不显示。它在 Xcode 6 中运行良好。

    @IBOutlet weak var WebView: UIWebView!

override func viewDidLoad() 

    super.viewDidLoad()

    // Do any additional setup after loading the view, typically from a nib.


    view.backgroundColor = UIColor.redColor()


    let alert = UIAlertView(title: "This App needs internet connection",

        message: "If not connected now, please make sure your device connect to internet and restart it.",

        delegate: nil,

        cancelButtonTitle: "OK")



    alert.show()


    let URL = NSURL(string: "http://saloonjob.com/catering")

    WebView.loadRequest(NSURLRequest(URL: URL!))



【问题讨论】:

【参考方案1】:

1)UIAlertView

从 iOS8 开始,UIActionSheet 和 UIAlertView 将被新的 UIAlertController 取代。

UIAlertController 的实例可以像使用 presentViewController:animated:completion: 方法的任何其他 UIViewController 一样以模态方式呈现在屏幕上。使 UIAlertController 实例区分作为 ActionSheet 还是作为 AlertView 工作的原因是您在创建它时传递的样式参数。

2)Web 视图

“如果你正在开发一个新的应用程序,你应该只使用 HTTPS。如果你有一个现有的应用程序,你现在应该尽可能多地使用 HTTPS,并为尽快迁移应用程序的其余部分制定计划,”Apple 在其 iOS 9 的预发布文档中解释道。 检查 HTTPS url,webview 将加载..

【讨论】:

让 URL = NSURL(string: "ssls.com") WebView.loadRequest(NSURLRequest(URL: URL!)) 但我仍然得到输出语句“2015-10-05 18:03:51.204 HKCateringApp[1326:45336] NSURLSession/NSURLConnection HTTP 加载失败 (kCFStreamErrorDomainSSL, -9824)” 不明白什么意思,我用的是https。【参考方案2】:

2) 网页视图: 仅使用 HTTPS 是不够的。 此外,服务器应支持最新的 SSL 技术。

请阅读这篇文章: http://ste.vn/2015/06/10/configuring-app-transport-security-ios-9-osx-10-11/

如果您无法控制服务器端,则可以将此标志添加到 info.plist:

<key>NSAppTransportSecurity</key>
<dict>
  <!--Include to allow all connections (DANGER)-->
  <key>NSAllowsArbitraryLoads</key>
      <true/>
</dict>

注意危险提示,你应该避免这个解决方案。

【讨论】:

以上是关于迁移到 Xcode 7 后 UIAlertView 和 UIWebView 不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 4.2、UIAlertView 和 UIAlertButton?

在 OS X 上从 XCode 迁移到 GCC

迁移 Xcode 项目后无法更改位置/路径设置

在 iOS 7 SDK 中关闭 UIAlertview 后 UIView 没有响应

Swift 3.0 和 Xcode 8 迁移后未调用 UITableViewDelegate 方法

如何从 UIAlertView 迁移(在 iOS8 中已弃用)