3
在iOS 6 & 7 Compatibility Tips建議檢查特定的API這樣如何檢查Xamarin iOS中是否存在某個方法/類/ API?
public static bool IsiOS7 {
get { return UIDevice.CurrentDevice.CheckSystemVersion (7, 0); }
}
if(Util.IsiOS7) {
//Call iOS 7 API
} else {
//Call iOS 6.1 or earlier API
}
同樣應該適用於iOS 8.現在我讀了你應該檢查是否有一定的方法或類exists代替版本檢查。這裏RespondsToSelector
的用武之地。這應該是這樣的
if (RespondsToSelector(new Selector("edgesForExtendedLayout")))
EdgesForExtendedLayout = UIRectEdge.None;
但是,如何將一個檢查是否存在像UIAlertController
全班? Objective-C中沒有NSClassFromString
。我也在Objective-C中看到類似的東西 - C
if ([UIAlertController class]){
// ...
}
會這樣的事情有訣竅嗎?
Type type=Type.GetType("UIAlertController");
if(type!=null)
{
// iOS 8 API
}else{
// iOS 7 or lower
}
如何在C#中做到這一點?或者存在其他方式檢查UIAlertController
,UISearchController
,...等等。
我使用Xamarin.iOS 8.10.1.64和我收到以下錯誤消息時我嘗試建立我的解決方案:_Error CS0176:靜態成員ObjCRuntime.Class.GetHandle(串) '不能使用實例引用進行訪問,而是使用類型名稱對其進行限定(CS0176)_ – 2015-06-10 21:14:05