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