0

我不明白为什么这段代码可以正常工作,例如

- (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;

    }

}

但如果我将它放入由协议/委托(语言环境)调用的方法中,则不起作用

协议系统运行良好,因为NSLog它显示在控制台中

-(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 ;

4

0 回答 0