代码之家  ›  专栏  ›  技术社区  ›  Homer1980ar

在旧版本上使用iPhone3.0类的委托,特别是mkreversegeocodedelegate

  •  0
  • Homer1980ar  · 技术社区  · 17 年前

    我想知道当我在视图控制器中使用mkreversegeocoderdelegate时会发生什么,但是应用程序正在2.2.1中运行。因为我支持2.2.1,但是使用3.0作为基本的SDK。

    我已经添加了框架作为软链接来支持2.2.1的工作,我理解我必须准备代码来检查mkreversegeocoder类是否可以用于处理geocoder的所有花哨工作,但我只是不理解委托是否会在2.2.1上崩溃应用程序,因为它不存在。这是我检查类是否存在的方法:

    // Try to found location
    Class geocoderClass = NSClassFromString(@"MKReverseGeocoder");
    if (geocoderClass != nil)
    { // Do my stuff here 
    }
    

    但我必须在头文件中声明,才能使用geocodeclass的委托。 我想知道这是怎么回事。为了准备这个代码,我还需要做什么吗?

    @interface MainViewController : UIViewController <FlipsideViewControllerDelegate, MKReverseGeocoderDelegate> {
    // My declarations here
    }
    

    谢谢, 利奥纳多

    1 回复  |  直到 17 年前
        1
  •  0
  •   pgb    17 年前

    你的密码没问题。告诉类符合协议是实现它的方法,因此它在3.0中正确编译,并且在旧版本中不会失败。

    在2.2中运行时,不会简单地调用来自委托的方法。