2014-07-03 26 views
7

Tôi đã tìm kiếm nhiều giờ cố gắng tìm giải pháp cho vấn đề đóng cửa này nhanh chóng. Tôi đã tìm thấy nhiều tài nguyên để giải thích về việc đóng cửa nhưng vì một lý do nào đó tôi dường như không thể làm việc này.Trình xử lý hoàn thành trong Swift

Đây là mã Objective-C Tôi cố gắng để chuyển đổi thành nhanh chóng:

[direction calculateDirectionsWithCompletionHandler:^(MKDirectionsResponse *response, NSError *error) { 
      NSLog(@"%@",[response description]); 
      NSLog(@"%@",[error description]); 

      }]; 

và nhanh chóng tôi đang cố gắng nhưng không hoạt động:

directions.calculateDirectionsWithCompletionHandler(response: MKDirectionsResponse?, error: NSError?) { 
    println(response.description) 
    println(error.description) 
} 

hướng là một đối tượng MKDirections.

Cảm ơn!

Trả lời

10

Hãy thử

directions.calculateDirectionsWithCompletionHandler ({ 
(response: MKDirectionsResponse?, error: NSError?) in 
     println(response?.description) 
     println(error?.description) 
    }) 
+1

này đã làm việc cảm ơn rất nhiều! God .. Closures .. XD Tôi sẽ đánh dấu là câu trả lời khi nó cho phép tôi. Cảm ơn một lần nữa! –

+0

Tuyệt vời! Không thành vẫn đề. – Adithya

+0

hoặc ngắn: 'directions.calculateDirectionsWithCompletionHandler ({(phản hồi, lỗi) trong/* code * /})' – David

1

về cú pháp của Closures trong Swift, và kiểm tra tham khảo MKDirections Class:

enter image description here

có vẻ việc đóng cửa thích hợp ở đây phải là một MKDirectionHandler, mà được định nghĩa là:

enter image description here

do đó hoàn thành xử lý sẽ trông như thế này:

direction.calculateDirectionsWithCompletionHandler({ (response: MKDirectionsResponse!, error: NSError!) ->() in 
    println(response.description) 
    println(error.description) 
    }) 
+0

Bài đăng này được gắn thẻ chất lượng thấp. Mặc dù danh tiếng của bạn, hãy thêm giải thích thêm. –

+0

@ Jean-RémyRevy, xấu của tôi, xin lỗi. – holex

+0

không thành vấn đề :). Đó là tốt bây giờ :)! –

2

enter image description here

Đây là cách chung một khối/đóng cửa trông giống như trong Swift.

nếu bạn không cần phải sử dụng các thông số bạn có thể làm điều đó như thế này

directions.calculateDirectionsWithCompletionHandler ({ 
(_) in 
    // your code here 
    }) 
Các vấn đề liên quan