我不明白为什么这段代码在
中正常工作- (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;