2016-05-05 17 views
10

Tôi đang sử dụng phương pháp Google PlaceAutoComplete để nhận đề xuất về Addess được nhập vào textField.Chức năng tự động hoàn thành của Google Sụp đổ sau khi gọi

func placeAutocomplete(text:String) { 
      let placesClient = GMSPlacesClient() 
      let filter = GMSAutocompleteFilter() 
      filter.type = .Address 

    placesClient.autocompleteQuery("New Delhi", bounds: nil, filter: nil) { (results, error) in 
     guard error == nil else { 
      print("Autocomplete error \(error)") 
      return 
     } 

     self.addressArray.removeAll() 
     for result in results! { 


      self.addressArray.append(result.attributedFullText.string) 
      print("Result \(result.attributedFullText.string) with placeID \(result.placeID)") 
     } 

    } 

} 

Khi tôi gọi phương thức này. Nó đổ vỡ, nói lỗi sau.

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFDictionary boolValue]: unrecognized selector sent to instance 0x7fe338f01e40' 

Tôi đã cố gắng tìm thấy bằng cách sử dụng điểm ngắt ngoại lệ nhưng không hoạt động. Có thể có ý tưởng nào không, ở đâu tôi sai?

+0

Nếu bạn sửa đổi mã của mình thành mã hiện đang được Google đề xuất (https://developers.google.com/places/ios-api/autocomplete#call_gmsplacesclient) nó vẫn sụp đổ? Vui lòng thử mã chính xác mà không cần thêm bất kỳ thứ gì vào addressArray và có lỗi: NSError ?. Một khi bạn thử điều này xin vui lòng cho tôi biết nếu nó không thành công là tốt. –

+0

có. nó đang bị đổ vỡ ngay cả khi sử dụng mã google để tự động hoàn thành –

Trả lời

1

Tôi đã giải quyết vấn đề bằng cách chỉnh sửa trong plist cho "cho phép tải tùy ý" trong Cài đặt bảo mật Giao thông vận tải ứng dụng. Tôi đã nhập đúng nhưng loại của nó đã được đặt chuỗi thay cho Boolean

0

Một nơi nào đó từ điển NSDictionary đang được chuyển tới mã nơi nó đang mong đợi một thứ có thể được hiểu là boolean như NSString hoặc NSNumber. Tôi không thấy bất cứ điều gì như thế trong mã bạn cung cấp. Nếu các điểm ngắt ngoại lệ không hoạt động, tôi sẽ thử thêm các điểm ngắt bình thường ở đâu đó và bước qua mã cho đến khi nó bị treo. Bạn cũng có thể thử xóa một số phần và mã nhất định và xem liệu sự cố vẫn xảy ra, điều này sẽ cho phép bạn thu hẹp phần nào của mã của bạn là để đổ lỗi.

Các vấn đề liên quan