我想讓我們的應用與iOS6的MKDirectionsRequest(Transit Directions方法)兼容。蘋果指出要做到這一點的最好辦法是:即使您的應用與iOS5兼容,也可以使用iOS6處理MKDirectionsRequest
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
if ([MKDirectionsRequest isDirectionsRequestURL:url]){
}
}
但是,什麼是保證這個代碼時,應用程序在運行iOS6的,而不是iOS5的只是運行的最好方法?該應用程序必須與iOS5兼容,但我的MKDirectionsRequest
是iOS6。
我不能使用編譯器指令,如:
#ifdefine iOS5
或任何東西。
這是最好的方法嗎?
BOOL atLeastIOS6 = [[[UIDevice currentDevice] systemVersion] floatValue] >= 6.0;
然後:
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
if (atLeastIOS6)
{
if ([MKDirectionsRequest isDirectionsRequestURL:url]){
}
}
}
我只是想確保用於openURLs
這將始終返回true,或編譯錯誤,因爲MKDirectionsRequest類不存在,所以你不能把它的消息。 –
@Scott不對。 NSClassFromString僅在使用較舊的SDK時才需要。我的代碼將使用iOS6 SDK進行編譯,並且在iOS5上運行時它的計算結果將爲false。 – Felix
啊,很高興知道! NSClassFromString仍然是首選的解決方案,以確保與舊SDK的兼容性? –