Tôi đang cố gắng xác định tên thành phố theo cấu trúc CLLocation
với yêu cầu phương thức ngược ... đối tượng CLGeocoder
, nhưng tôi không biết cách đặt thời gian chờ? Nếu không có thời gian yêu cầu kết nối internet có thể mất khoảng 30 giây - quá dài ...CLGeocoder làm thế nào để thiết lập thời gian chờ?
8
A
Trả lời
2
Không có bất kỳ chức năng tích hợp nào để xử lý điều này mà tôi biết. Tôi đã bắt đầu sử dụng giải pháp sau. Xin lỗi trong Swift, tôi không nói thành thạo Objective-C.
này sẽ cung cấp cho bạn một thời gian chờ 2 giây
func myLookupFunction(location: CLLocation)
{
let timer = NSTimer(timeInterval: 2, target: self, selector: "timeout:", userInfo: nil, repeats: false);
geocoder.reverseGeocodeLocation(location){
(placemarks, error) in
if(error != nil){
//execute your error handling
}
else
{
//execute your happy path
}
}
NSRunLoop.currentRunLoop().addTimer(timer, forMode: NSDefaultRunLoopMode)
}
func timeout(timer: NSTimer)
{
if(self.geocoder.geocoding)
{
geocoder.cancelGeocode();
}
}
Sau khi cháy thời gian chờ, gọi lại của bạn sẽ được thực thi và con đường lỗi với được gọi.
Bạn sẽ nhận được một lỗi với các chi tiết:
- Mã = 10
- Localized Mô tả (tiếng Anh) = Các hoạt động không thể hoàn tất. (kCLErrorDomain error 10.)
Hy vọng điều này sẽ hữu ích.
0
@ JTango18 câu trả lời trong Swift 3:
func myLookupFunction(location: CLLocation)
{
let timer = Timer(timeInterval: 2, target: self, selector: #selector(self.timeout), userInfo: nil, repeats: false);
geocoder.reverseGeocodeLocation(location){
(placemarks, error) in
if(error != nil){
//execute your error handling
}
else
{
//execute your happy path
}
}
RunLoop.current.add(timer, forMode: RunLoopMode.defaultRunLoopMode)
}
func timeout()
{
if (geocoder.isGeocoding){
geocoder.cancelGeocode()
}
}
Các vấn đề liên quan
- 1. Làm thế nào để thiết lập thời gian chờ cho một dòng C# mã
- 2. Làm thế nào để thiết lập thời gian chờ kết nối trong SQLAlchemy
- 3. Làm thế nào để thiết lập thời gian chờ cho WebBrowser điều hướng sự kiện
- 4. làm thế nào để thiết lập giá trị mặc định thời gian chờ savon
- 5. Làm thế nào để thiết lập thời gian mặc định cho thời gian đầu vào simple_form
- 6. Lập lịch thời gian chờ trong Haskell
- 7. Dnspython: Thiết lập thời gian chờ truy vấn/toàn thời gian
- 8. Làm thế nào để thiết lập một thời gian chờ trên chặn ổ cắm trong asio tăng?
- 9. Làm thế nào để thay đổi thời gian chờ màn hình lập trình?
- 10. Làm cách nào để đặt IHttpAsyncHandler hết thời gian chờ?
- 11. Javascript làm thế nào để thiết lập khoảng thời gian để ngăn chặn di chuyển
- 12. Làm thế nào để chờ một sự kiện trong C#, với thời gian chờ và hủy
- 13. Làm thế nào để làm ssh với một thời gian chờ trong một kịch bản?
- 14. Lập trình thiết lập thời gian chờ WCF ở chế độ gỡ lỗi
- 15. Redis: Để thiết lập thời gian chờ cho một cặp giá trị quan trọng trong Set
- 16. Làm thế nào để buộc thời gian chờ cho DriverManager.getConnection() gọi phương thức?
- 17. Làm cách nào để giảm thời gian chờ (ttfb)
- 18. Làm cách nào để phân biệt thời gian chờ (hết thời gian chờ) để thông báo hoặc hết thời gian chờ?
- 19. Thiết lập thời gian chờ thực để tải trang trong Selenium WebDriver?
- 20. Làm thế nào để thiết lập thời gian hiện tại trong một DateTimePicker
- 21. Làm thế nào để thiết lập asp.net Identity cookies hết hạn thời gian
- 22. Làm thế nào để thiết lập một bộ đếm thời gian trong javascript
- 23. Làm thế nào để thiết lập lại giá trị thời gian của setTimeout() trong Javascript?
- 24. Làm thế nào để thiết lập mức độ reverb và thời gian trên kAudioUnitSubType_Reverb2
- 25. Làm thế nào để thiết lập số đề tại thời gian chạy (tránh + RTS -N #)
- 26. Làm cách nào để tăng thời gian chờ trong LINq2Entities?
- 27. HttpClient quầy hàng trong thời gian dài, ngay cả với các thông số thời gian chờ thiết lập
- 28. Làm thế nào để thiết lập cookie
- 29. Làm thế nào để đặt thời gian chờ cho NHibernate LINQ tuyên bố
- 30. Đặt thời gian chờ để phẫu thuật