【问题标题】:iOS: Can openURL ever be nil?iOS:openURL 可以为零吗?
【发布时间】:2011-06-07 17:34:14
【问题描述】:
对于-[UIApplicationDelegate application:openURL:sourceApplication:annotation:],URL 可以是nil 吗?我之所以问是因为我看到有人签了支票if (url) // ...,但这不是不必要的吗?也就是说,这个方法不是总是被openURL的非零NSURL参数调用吗?
【问题讨论】:
标签:
iphone
objective-c
ios
uiapplicationdelegate
【解决方案1】:
假设一个外部调用(即来自另一个试图打开你的应用程序),那么我会假设它不是 nil,但是也许(我不太可能知道)你在内部调用它,在这种情况下它可能是?
然而假设是危险的!
因此,如果该值为 nil,则在执行可能导致崩溃的操作之前检查该值似乎是明智的。
如果你问我,似乎可以。
【解决方案2】:
根据Apple Documentation,url参数是:
表示 URL 的对象(通用
资源定位器)。见苹果网址
苹果注册方案参考
URL 的方案。
您必须注册您的应用程序才能接受特定的 URL。
This article 显示了它是如何完成的。
这会让我相信除非它遵循应用程序指定的 URL 架构,否则不会调用此方法。
如果在内部调用它,那么您将知道是否需要检查 nil。至于调用它的外部应用程序,我不知道会发生什么。