我将我的应用定位为在iOS7及更高版本中运行。我想在tableView标题中放置一个搜索栏。我在iOS8及以上版本中使用UISearchController,我在全球范围内使用了声明。
var searchController : UISearchController!
但是,如果我将目标更改为iOS7,则会显示错误
'UISearchController' is only available on iOS 8.0 or newer
XCode建议我放
@available(iOS 8.0, *)
属性为封闭类以便我修复它。通过这样做,整个类只能使用iOS8及更高版本运行。
我的目标是使用适用于iOS7的UISearchDisplayController和适用于iOS8及更高版本的UISearchController进行搜索。为了做到这一点,我需要将它声明为全局变量,因为我需要变量来改变tableView的某些行为。
我可以知道如何在全球范围内声明变量,以便实现目标吗? 非常感谢你。
答案 0 :(得分:0)
在声明searchController变量之前,检查iOS版本并相应地进行初始化。做这样的事情
if #available(iOS 8.0, *) {
// your iOS 8 related code
} else {
// Fallback on earlier versions
};