didFailWithError: Error Domain = kCLErrorDomain Code = 0 “Không thể hoàn thành thao tác. (kCLErrorDomain error 0.) ”


82

Tôi muốn lấy vị trí hiện tại nhưng lại gặp lỗi.

Đây là một đoạn mã của bộ điều khiển chế độ xem của tôi.

- (void)viewDidLoad {
    self.locationManager = [[CLLocationManager alloc] init];
    [locationManager setDelegate:self];
    [locationManager setDesiredAccuracy:kCLLocationAccuracyNearestTenMeters];
    [locationManager startUpdatingLocation];
}

- (void)locationManager:(CLLocationManager *)manager 
     didUpdateLocations:(NSArray<CLLocation *> *)locations {
    // I would get the latest location here
    // but this method never gets called
}
- (void)locationManager:(CLLocationManager *)manager 
       didFailWithError:(NSError *)error {
    NSLog(@"didFailWithError: %@", error);
}

Tôi đang mong đợi phương thức ủy nhiệm locationManager:didUpdateLocations:được gọi, nhưng thay vào đó, chỉ locationManager:didFailWithError:được gọi và in ra:

didFailWithError: Error Domain=kCLErrorDomain Code=0 "The operation couldn’t be completed. (kCLErrorDomain error 0.)" 

Bạn có thể sử dụng google api như một giải pháp thay thế. Tham khảo câu trả lời của tôi tại đây stackoverflow.com/a/40670608/2033377
Deepak Thakur

Câu trả lời:


106
  1. Kiểm tra xem bạn có thực sự có kết nối WiFi và 3G hợp lệ không

    ... nếu bạn làm vậy, thì:

  2. Đi tới cài đặt và đặt lại dịch vụ vị trí của bạn

  3. Đặt lại cài đặt mạng của bạn

Điều này nên quan tâm đến vấn đề đó. Nó liên quan đến thiết bị / mạng không liên quan đến ứng dụng. Thật khó chịu, đặc biệt là nếu ứng dụng của bạn phụ thuộc vào các dịch vụ định vị và thiết bị chỉ có WiFi và mọi người đánh giá tiêu cực trên AppStore ... Xin lỗi, tôi hơi xúc động ở đó.


2
Theo như tôi biết thì GPS không cần kết nối internet hay wifi, nó chỉ là một bộ thu nếu nó ở vị trí có thể truy cập được với 2 hoặc 3 vệ tinh GPS, chúng tôi có thể nhận được tọa độ vị trí địa lý. không có kết nối internet hoặc wifi?
Durai Amuthan.H

2
Một ủng hộ cho việc chỉ ra việc gửi lại các dịch vụ vị trí và cài đặt mạng
Durai Amuthan.

3
Bạn không cần phải trải qua các bước này. Đơn giản chỉ cần bỏ qua lỗi này và đợi các bản cập nhật khác. Xem câu trả lời của tôi bên dưới hoặc xem tài liệu tại developer.apple.com/library/ios/documentation/corelocation/… :
Ray Lillywhite

3
Tôi gặp chính xác vấn đề tương tự khi chơi với MapKit & CoreLocation trên thiết bị của mình (iPhone 5S, iOS 8.1.3). Tôi không thể tìm được vị trí và lại gặp lỗi tương tự (mặc dù tín hiệu mạng di động tốt). Cho đến khi tôi Bật WiFi và mọi thứ đã được khắc phục! Kỳ lạ ... Cảm ơn!
Vinzzz

2
@ DuraiAmuthan.H iPad không có phần cứng GPS thực tế. Họ sử dụng cơ sở dữ liệu địa chỉ MAC của wifi để xác định vị trí của bạn.
whoKnows

146

Nếu bạn đang sử dụng trình mô phỏng:

  1. nhấn command + shift + , vào Xcode để mở trình chỉnh sửa lược đồ
  2. Chọn lược đồ Chạy
  3. Chuyển đến tab Tùy chọn
  4. Kiểm tra ✅ Allow Location Simulation
  5. Chọn một vị trí mặc định trong menu thả xuống

Việc chọn Nonelàm Vị trí mặc định của bạn có thể đã gây ra sự cố.


4
Chà! Cảm ơn, tôi đã theo đuổi điều này trong nhiều tuần. Ứng dụng của tôi liên tục buộc iPad hoặc iPhone của tôi đến vị trí London, Anh và tôi không thể tìm ra lý do. Tôi đã tắt tùy chọn đó và sự cố đã biến mất. Có thể nó đang gặp trục trặc khi lấy vị trí và sau đó tắt và thay đổi vị trí thành vị trí trên Đề án.
Andrew Smith

7
Làm việc cho tôi, nhưng tôi cũng phải làm iOS Simulator>Reset Content and Settings...
bendytree

Đóng đinh nó cho tôi.
ScottyBlades

23

Đơn giản chỉ cần bỏ qua lỗi này và đợi thêm bản cập nhật hoặc một lỗi khác.

Tài liệu cho người quản lý vị trí nói rằng lỗi này là tạm thời. Nó cho bạn biết rằng nó không thể truy xuất ngay vị trí, nhưng nó vẫn tiếp tục thử. "Trong tình huống như vậy, bạn có thể đơn giản bỏ qua lỗi và chờ đợi một sự kiện mới." Đó là một cách thực sự dễ hiểu khi sử dụng phương pháp có tên locationManager:didFailWithError:- Cảm ơn Apple!

Apple Documentation


19

Thử khởi động lại trình mô phỏng (giả sử đó là những gì bạn đang sử dụng).

Sau khi thử mọi thứ khác, điều này đã làm việc cho tôi.


Làm việc cho me.Thanks
Sushil Sharma

Làm việc cho tôi là tốt. Cảm ơn
cozmin-calin

14

Khởi động lại trình mô phỏng không hoạt động đối với tôi.

Tôi đã phải xóa mọi thứ thông qua "iOS Simulator" >> "Reset Content and Settings....


9

Tôi đã gặp lỗi này trên trình mô phỏng. Nhấp vào nút vị trí trong bảng gỡ lỗi và đặt vị trí đã khắc phục sự cố cho tôi. (Đảm bảo rằng nút có màu xanh lam)

nhập mô tả hình ảnh ở đây



5

Thay đổi "Vị trí" trên trình mô phỏng đã hiệu quả với tôi.

Gỡ lỗi> Vị trí> (Tôi đã chọn Không có thay vì Đi xe đạp Thành phố, ví dụ:)


5
  1. Trong trình mô phỏng, đi tới Cài đặt> Chung> Đặt lại> Đặt lại Vị trí & Quyền riêng tư

  2. Thoát trình mô phỏng và chạy lại ứng dụng


3

Giả sử rằng bạn đang sử dụng trình mô phỏng, bạn có thể Debug -> Locationđặt và đặt một vị trí.

Nếu bạn không có lựa chọn nào, bạn sẽ gặp lỗi này.


2

Nếu bạn đang sử dụng custom locationhãy đảm bảo rằng bạn có độ dài và độ lớn đúng cách, tôi đã làm nó bị đảo ngược và lãng phí 3 giờ trước khi tôi nhận ra ...


Ame ở đây tôi cũng đã lãng phí 2 giờ đồng hồ, đặt Vĩ độ và Kinh độ ở đúng vị trí.
Arpit B Parekh

2

Tôi đã thấy vấn đề trước đây, có một cách để giải quyết nó, nhưng nó chỉ có thể hoạt động một lần, nếu bạn muốn chạy lại dự án và bạn cần lặp lại giải pháp mỗi lần.

1. Trong Xcode, Sản phẩm -> Lược đồ -> Chỉnh sửa Lược đồ, sau đó hủy "Cho phép Trình mô phỏng Vị trí".

2.Đến Trình mô phỏng iOS và đặt lại Nội dung và Cài đặt.

3.Vì Xcode, lặp lại bước đầu tiên.

4.Đến Trình mô phỏng iOS và đặt lại. Sau đó, nó sẽ hoạt động.


1

Các vấn đề như thế này có thể được giải quyết bằng cách đặt vị trí là " Apple". Ít nhất nó hoạt động cho mục đích thử nghiệm.


1
  1. Tôi đã đặt lại nội dung và cài đặt.
  2. Đã xóa dữ liệu khỏi dữ liệu có nguồn gốc.
  3. Khởi động lại Xcode và Trình mô phỏng và làm việc cho tôi.

từ câu trả lời của @Mem và nhiều người khác cảm ơn


1

Đối với các nhà phát triển đã trả lại :) Chỉ cần chọn " Debug->Location->Freeway Drive" từ menu Trình mô phỏng. Nếu vẫn có vấn đề, hãy thử sau khi thực hiện "Trình mô phỏng-> Đặt lại nội dung và cài đặt", hình thành menu mô phỏng. Điều này đã giúp tôi một lần với cùng một vấn đề. Một số vị trí của trình mô phỏng thời gian được đặt thành " Custom location" do đó nó không phát hiện ra bất cứ điều gì.


1

Nếu bạn đang sử dụng Trình mô phỏng, hãy đảm bảo rằng lược đồ cho phép vị trí và bạn đã chọn một vị trí mặc định.

nhập mô tả hình ảnh ở đây


0

Thử trong thiết bị. Đôi khi trình mô phỏng không lấy được vị trí của bạn.


0

Về nhà trong trình mô phỏng

home -> Cài đặt -> Quyền riêng tư -> Vị trí -> chọn ứng dụng và chọn luôn


0

khi thêm quyền Bảo mật - Vị trí Khi Sử dụng Mô tả Cách sử dụng trong info.plist, nó đã được giải quyết cho tôi

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.