2012-07-17 28 views
14

Làm thế nào để dừng một điều tra ở đây nếu tôi thực hiện các bước sau? Tôi nghĩ rằng các tài liệu nói rằng để thiết lập stop = TRUE. nhưng khi tôi làm điều đó bên trong khối nó nói rằng nó không phải là không thể giao.dừng liệt kê khối cho một NSDictionary

[self.visibleViewControllers_ enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) { 

      if (CGRectIntersectsRect(visibleRect, viewRect)) { 
       //break here 
      } 
     }]; 
+1

dừng là một con trỏ. Bạn không đặt stop thành true vì nó là một con trỏ. Bạn viết * stop = YES – gnasher729

Trả lời

26

Đặt *stop để YES

[self.visibleViewControllers_ enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) { 

      if (CGRectIntersectsRect(visibleRect, viewRect)) { 
       *stop =YES; 
       return; 
      } 
     }]; 
+3

Bạn cũng có thể muốn một câu lệnh 'return' ngay lập tức sau khi thiết lập' * stop = YES', nếu có bất cứ điều gì sau này trong khối của bạn. –

2

Đối với SWIFT 2:

Dict.enumerateKeysAndObjectsUsingBlock { (key, value, stop) -> Void in 

      if(//Something){ 
       //Do Something 
      } 
      else { 
       //To Stop 
       stop.memory = true 
      } 
     } 
Các vấn đề liên quan