我不明白为什么这段代码可以正常工作,例如
- (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 ;