首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在iOS 5中识别MKMapItem?

在iOS 5中识别MKMapItem?
EN

Stack Overflow用户
提问于 2012-09-20 11:15:11
回答 1查看 686关注 0票数 2

因此,我使用NSClassFromString来检查用户是否安装了iOS 5或iOS 6来使用苹果新的iOS 6 MKMapItem。代码如下:

代码语言:javascript
复制
- (void)openDirections:(id)sender {
    Class mapClass = NSClassFromString(@"MKMapItem"); 

    if (mapClass == nil) {
    // iOS 5, do something here
    }
    else {
    // iOS 6, open up maps with MKMapItem.
    }
}

通过上面的代码,当我在iOS 5.1模拟器或iOS 5.1设备上运行它时,可以运行iOS 6分支。但是,如果我使用

代码语言:javascript
复制
Class mapClass = NSClassFromString(@"PKPass");

这也是在iOS 6中引入的,我的代码遵循相应的iOS 5或iOS 6分支。我是不是遗漏了什么?谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-20 11:23:05

MKMapItem存在于iOS的早期版本中,因为它当时处于开发阶段,因此类也存在。相反,苹果公司建议您使用以下代码来检查他们在iOS 6.0中专门添加的方法:

代码语言:javascript
复制
Class itemClass = [MKMapItem class];
if (itemClass && [itemClass respondsToSelector:@selector(openMapsWithItems:launchOptions:)]) {
   // Use class
}

来自MKMapItem Class Reference的信息

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12505624

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档