代码之家  ›  专栏  ›  技术社区  ›  Dan Ray

为什么我收到关于我的应用程序委托和cllocationmanagedelegate的警告?

  •  0
  • Dan Ray  · 技术社区  · 14 年前

    观察这个非常简单的uiviewcontroller子类方法:

    -(IBAction)launchSearch
    {
        OffersSearchController *search = [[OffersSearchController alloc]
                                          initWithNibName:@"OffersSearchView" bundle:nil];
        EverWondrAppDelegate *del = [UIApplication sharedApplication].delegate;
        [del.navigationController pushViewController:search animated:YES];
        [search release];
    }
    

    在我得到*del的那一行,我得到一个编译器警告, Type 'id <UIApplicationDelegate>' does not conform to the 'CLLocationManagerDelegate' protocol . 事实上,我的应用程序委托确实符合该协议,我在这里所做的与此无关。那么,这个信息是怎么回事?

    第二个问题:有时我可以通过 self.navigationController 有时我做不到,必须去我的应用程序代表的财产,以获得它,就像我在这里做的。任何关于这一点的提示都是非常有用的。

    1 回复  |  直到 14 年前
        1
  •  0
  •   kubi    14 年前

    试试这个:

    EverWondrAppDelegate *del = (EverWondrAppDelegate *)[UIApplication sharedApplication].delegate;
    

    关于你的第二个问题:不知道为什么会这样。