协议中的方法无法正常工作

时间:2012-12-20 21:16:46

标签: objective-c delegates protocols

我不明白为什么这段代码在

中正常工作
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{

    UITabBarItem *item1 = [self.tabBarController.tabBar.items objectAtIndex:1];

    visibleMapRect = self.mappa.visibleMapRect;
    visibleAnnotations = [mappa annotationsInMapRect:visibleMapRect];

    if(visibleAnnotations.count>0){
        item1.enabled=true;
    }
    else{
        item1.enabled=false;

    }

}

但是如果我将它放入protocol / delegate(locale)调用的方法

中则不起作用

协议系统运行良好,因为NSLog显示在consolle

-(void)locale{

    UITabBarItem *item1 = [self.tabBarController.tabBar.items objectAtIndex:1];

    visibleMapRect = self.mappa.visibleMapRect;
    visibleAnnotations = [mappa annotationsInMapRect:visibleMapRect];

    if(visibleAnnotations.count>0){
        item1.enabled=true;
     }
     else{
         item1.enabled=false;

     }

     NSLog(@"%d",visibleAnnotations.count);


 }

在第一个方法NSLog(@"%d",visibleAnnotations.count);中返回正确的数字......但在协议方法中它总是返回0;

0 个答案:

没有答案