Swift Google Directions API JSON-EXC_BAD_INSTRUCTION (코드 = EXC_I386_INVOP, 하위 코드 = 0x0)

불꽃

Google API를 사용하여 길 찾기 데이터를 가져 오려고하는데 계속 충돌이 발생합니다. 내 코드는 다음과 같습니다.

let baseURLDirections = "https://maps.googleapis.com/maps/api/directions/json?"
var selectedRoute: Dictionary<NSObject, AnyObject>!
var overviewPolyline: Dictionary<NSObject, AnyObject>!
var originCoordinate: CLLocationCoordinate2D!
var destinationCoordinate: CLLocationCoordinate2D!
var originAddress: String!
var destinationAddress: String!

func getDirections(origin: String, destination: String, waypoints: Array<String>!, travelMode: AnyObject!, completionHandler: ((status: String, success: Bool) -> Void)) {

    var directionsURLString = baseURLDirections + "origin=" + origin + "&destination=" + destination

    directionsURLString = directionsURLString.stringByAddingPercentEncodingWithAllowedCharacters(.URLHostAllowedCharacterSet())!

    let directionsURL = NSURL(string: directionsURLString)
    let urlRequest: NSMutableURLRequest = NSMutableURLRequest(URL: directionsURL!)
    let session = NSURLSession.sharedSession()
    let task = session.dataTaskWithRequest(urlRequest) {
        (data, response, error) -> Void in

        do {
            let directionsData = NSData(contentsOfURL: directionsURL!)
            if let dictionary: Dictionary<NSObject, AnyObject> = try NSJSONSerialization.JSONObjectWithData(directionsData!, options: .MutableContainers) as? Dictionary<NSObject, AnyObject> {

                let status = dictionary["status"] as! String

                if status == "OK" {
                    self.selectedRoute = (dictionary["routes"] as! Array<Dictionary<NSObject, AnyObject>>)[0]

                    self.overviewPolyline = self.selectedRoute["overview_polyline"] as! Dictionary<NSObject, AnyObject>

                    let legs = self.selectedRoute["legs"] as! Array<Dictionary<NSObject, AnyObject>>

                    let startLocationDictionary = legs[0]["start_location"] as! Dictionary<NSObject, AnyObject>
                    self.originCoordinate = CLLocationCoordinate2DMake(startLocationDictionary["lat"] as! Double, startLocationDictionary["lng"] as! Double)

                    let endLocationDictionary = legs[legs.count - 1]["end_location"]as! Dictionary<NSObject, AnyObject>
                    self.destinationCoordinate = CLLocationCoordinate2DMake(endLocationDictionary["lat"] as! Double, endLocationDictionary["lng"] as! Double)

                    self.originAddress = legs[0]["start_address"]as! String
                    self.destinationAddress = legs[legs.count - 1]["end_address"]as! String

                    self.calculateTotalDistanceAndDuration()

                    completionHandler(status: status, success: true)
                }
                else {
                    completionHandler(status: status, success: false)
                }
            }
        } catch let error as NSError {
            print(error)
            completionHandler(status: "", success: false)
        }
    }

    task.resume()
}

"EXC_BAD_INSTRUCTION (코드 = EXC_I386_INVOP, 하위 코드 = 0x0)"이라고 표시됩니다.

self.overviewPolyline = self.selectedRoute["overview_polyline"] as! Dictionary<NSObject, AnyObject>

그리고 내부의 모든 코드를 삭제해도

if let dictionary: Dictionary<NSObject, AnyObject> = try NSJSONSerialization.JSONObjectWithData(directionsData!, options: .MutableContainers) as? Dictionary<NSObject, AnyObject> {

EXC_BAD_INSTRUCTION (코드 = EXC_I386_INVOP, 하위 코드 = 0x0)을 받고 있습니다. 이 문제를 어떻게 해결합니까?

에릭 불피

내가 변했을 때 효과가 있었어

directionsURLString = directionsURLString.stringByAddingPercentEncodingWithAllowedCharacters(.UR>LHostAllowedCharacterSet())!

...에

directionsURLString = directionsURLString.stringByAddingPercentEncodingWithAllowedCharacters(.URLQueryAllowedCharacterSet())!

저를 올바른 방향으로 알려 주셔서 감사합니다! 신속한 3.0에서는 다음과 같이 번역됩니다.

SearchString = SearchString.addingPercentEncoding(withAllowedCharacters: CharacterSet.urlQueryAllowed)!

다음은 URL 준비를위한 또 다른 유용한 문자열 수정 자입니다 (악센트 등을 제거하지만 "ø"와 같은 이상한 문자는 제거하지 않음).

SearchString = SearchString.folding(options: .diacriticInsensitive, locale: .current)

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

SWIFT UI LOTTIE : 스레드 1 : EXC_BAD_INSTRUCTION (코드 = EXC_I386_INVOP, 하위 코드 = 0x0)

분류에서Dev

Swift의 EXC_BAD_INSTRUCTION (코드 = EXC_I386_INVOP, 하위 코드 = 0x0)

분류에서Dev

Swift Playground 오류 : EXC_BAD_INSTRUCTION (코드 = EXC_I386_INVOP, 하위 코드 = 0x0)

분류에서Dev

스레드 1 : TableViewCell에 대한 EXC_BAD_INSTRUCTION (코드 = EXC_I386_INVOP, 하위 코드 = 0x0)

분류에서Dev

EXC_BAD_INSTRUCTION (코드 = EXC_I386_INVOP, 하위 코드 = 0x0), 테이블보기 포함

분류에서Dev

EXC_BAD_INSTRUCTION (코드 = EXC_i386_INVOP, 하위 코드 = 0x0) 충돌

분류에서Dev

SQLite 오류 : EXC_BAD_INSTRUCTION (코드 = EXC_I386_INVOP, 하위 코드 = 0x0) -iOS

분류에서Dev

Swift Extension 예외 실행이 중단되었습니다. 이유 : EXC_BAD_INSTRUCTION (코드 = EXC_I386_INVOP, 하위 코드 = 0x0)

분류에서Dev

전송시 Swift 3 마이그레이션 EXC_BAD_INSTRUCTION (코드 = EXC_I386_INVOP, 하위 코드 = 0x0)

분류에서Dev

런타임 중에 "스레드 1 : EXC_BAD_INSTRUCTION (코드 = EXC_I386_INVOP, 하위 코드 = 0x0)"을 표시하는 문제

분류에서Dev

EXC_BAD_INSTRUCTION (코드 = EXC_I386_INVOP, 하위 코드 = 0x0). 데이터 구조를 만드는 동안 오류가 발생했습니다.

분류에서Dev

NSPersistentCloudKitContainer 충돌이있는 Mac 촉매제 : EXC_BAD_INSTRUCTION (코드 = EXC_I386_INVOP, 하위 코드 = 0x0)

분류에서Dev

스레드 9 : EXC_BAD_INSTRUCTION (code = EXC_I386_INVOP, subcode = 0x0) firebase

분류에서Dev

신속한 오류 : EXE_BAD_INSTRUCTION (코드 = EXC_I386_INVOP, 하위 코드 = 0x0)

분류에서Dev

SwiftUI Init ()에서 핵심 데이터 엔티티에 신속하게 액세스합니까? (스레드 1 : EXC_BAD_INSTRUCTION (코드 = EXC_I386_INVOP, 하위 코드 = 0x0)

분류에서Dev

Swift EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0) with WebView

분류에서Dev

Json의 Swift xcode 8.1에서 EXC_BAD_INSTRUCTION (code = EXC_I386_INVOP, subcode = 0x0)을 수정할 수 없습니다.

분류에서Dev

IOS 내 코드에 어떤 문제가 있습니까? "스레드 1 : EXC_BAD_ INSTRUCTION (code = EXC_I386_INVOP, subcode = 0x0)"

분류에서Dev

스레드 1 : EXC_BAD_INSTRUCTION (코드 = EXC_1386_INVOP, SUBCODE = 0X0)-오류

분류에서Dev

Swift 3- 'EXC_BAD_INSTRUCTION (code = EXC_1386_INVOP, subcode = 0x0)'오류

분류에서Dev

A problem showing "Thread 1: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)" during runtime

분류에서Dev

delegate = self 원인 Thread 1 : exc_bad_instruction (code = exc_i386_invop subcode = 0x0)

분류에서Dev

downloadTask의 AFNetworking EXC_BAD_ACCESS (코드 = 2, 주소 = 0x0)

분류에서Dev

EXC_BAD_ACCESS (코드 = 1, 주소 = 0x0)

분류에서Dev

Swift, 오류 EXC_BREAKPOINT (코드 = 1, 하위 코드 = 0x100695474)

분류에서Dev

Swift, 오류 EXC_BREAKPOINT (코드 = 1, 하위 코드 = 0x100310448)

분류에서Dev

신속하게 EXC_BAD_INSTRUCTION (code = EXC_1386_INVOP, subcode = 0x0)을 수정하는 방법

분류에서Dev

Swift, 스레드 1 : EXC_BAD_INSTRUCTION 오류

분류에서Dev

오류로 인한 UIWebview 충돌 : EXC_BREAKPOINT (코드 = EXC_I386_BPT, SUBCODE = 0X0)

Related 관련 기사

  1. 1

    SWIFT UI LOTTIE : 스레드 1 : EXC_BAD_INSTRUCTION (코드 = EXC_I386_INVOP, 하위 코드 = 0x0)

  2. 2

    Swift의 EXC_BAD_INSTRUCTION (코드 = EXC_I386_INVOP, 하위 코드 = 0x0)

  3. 3

    Swift Playground 오류 : EXC_BAD_INSTRUCTION (코드 = EXC_I386_INVOP, 하위 코드 = 0x0)

  4. 4

    스레드 1 : TableViewCell에 대한 EXC_BAD_INSTRUCTION (코드 = EXC_I386_INVOP, 하위 코드 = 0x0)

  5. 5

    EXC_BAD_INSTRUCTION (코드 = EXC_I386_INVOP, 하위 코드 = 0x0), 테이블보기 포함

  6. 6

    EXC_BAD_INSTRUCTION (코드 = EXC_i386_INVOP, 하위 코드 = 0x0) 충돌

  7. 7

    SQLite 오류 : EXC_BAD_INSTRUCTION (코드 = EXC_I386_INVOP, 하위 코드 = 0x0) -iOS

  8. 8

    Swift Extension 예외 실행이 중단되었습니다. 이유 : EXC_BAD_INSTRUCTION (코드 = EXC_I386_INVOP, 하위 코드 = 0x0)

  9. 9

    전송시 Swift 3 마이그레이션 EXC_BAD_INSTRUCTION (코드 = EXC_I386_INVOP, 하위 코드 = 0x0)

  10. 10

    런타임 중에 "스레드 1 : EXC_BAD_INSTRUCTION (코드 = EXC_I386_INVOP, 하위 코드 = 0x0)"을 표시하는 문제

  11. 11

    EXC_BAD_INSTRUCTION (코드 = EXC_I386_INVOP, 하위 코드 = 0x0). 데이터 구조를 만드는 동안 오류가 발생했습니다.

  12. 12

    NSPersistentCloudKitContainer 충돌이있는 Mac 촉매제 : EXC_BAD_INSTRUCTION (코드 = EXC_I386_INVOP, 하위 코드 = 0x0)

  13. 13

    스레드 9 : EXC_BAD_INSTRUCTION (code = EXC_I386_INVOP, subcode = 0x0) firebase

  14. 14

    신속한 오류 : EXE_BAD_INSTRUCTION (코드 = EXC_I386_INVOP, 하위 코드 = 0x0)

  15. 15

    SwiftUI Init ()에서 핵심 데이터 엔티티에 신속하게 액세스합니까? (스레드 1 : EXC_BAD_INSTRUCTION (코드 = EXC_I386_INVOP, 하위 코드 = 0x0)

  16. 16

    Swift EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0) with WebView

  17. 17

    Json의 Swift xcode 8.1에서 EXC_BAD_INSTRUCTION (code = EXC_I386_INVOP, subcode = 0x0)을 수정할 수 없습니다.

  18. 18

    IOS 내 코드에 어떤 문제가 있습니까? "스레드 1 : EXC_BAD_ INSTRUCTION (code = EXC_I386_INVOP, subcode = 0x0)"

  19. 19

    스레드 1 : EXC_BAD_INSTRUCTION (코드 = EXC_1386_INVOP, SUBCODE = 0X0)-오류

  20. 20

    Swift 3- 'EXC_BAD_INSTRUCTION (code = EXC_1386_INVOP, subcode = 0x0)'오류

  21. 21

    A problem showing "Thread 1: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)" during runtime

  22. 22

    delegate = self 원인 Thread 1 : exc_bad_instruction (code = exc_i386_invop subcode = 0x0)

  23. 23

    downloadTask의 AFNetworking EXC_BAD_ACCESS (코드 = 2, 주소 = 0x0)

  24. 24

    EXC_BAD_ACCESS (코드 = 1, 주소 = 0x0)

  25. 25

    Swift, 오류 EXC_BREAKPOINT (코드 = 1, 하위 코드 = 0x100695474)

  26. 26

    Swift, 오류 EXC_BREAKPOINT (코드 = 1, 하위 코드 = 0x100310448)

  27. 27

    신속하게 EXC_BAD_INSTRUCTION (code = EXC_1386_INVOP, subcode = 0x0)을 수정하는 방법

  28. 28

    Swift, 스레드 1 : EXC_BAD_INSTRUCTION 오류

  29. 29

    오류로 인한 UIWebview 충돌 : EXC_BREAKPOINT (코드 = EXC_I386_BPT, SUBCODE = 0X0)

뜨겁다태그

보관