たとえば、このコードが正しく機能する理由がわかりません
- (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 を返します。