처리 함수 오류

0

질문

난 이해하지 못에서 문서를 어떻게 오류 처리,저는 다음과 같다:

func myFunc() async -> TransactionsClassAModel {
    let url = URL(string: "..."))
    
    let undecodedData = try! await networkingTools.afRequest(url: url!)
    let decodedData = try! JSONDecoder().decode(TransactionsClassAModel.self, from: undecodedData)
    
    return decodedData
}

나가려고 다음과 같습니다.

do {
    let undecodedData = try await networkingTools.afRequest(url: url!)
    try JSONDecoder().decode(TransactionsClassAModel.self, from: undecodedData)
} catch {
    print("error: ", error)
}

고 return 문 말 Cannot find 'decodedData' in scope 경고: Result of call to 'decode(_:from:)' is unused

할 수 있는 사람이 나를 설명이 어떻게 작동하십시오.

감사

swift
2021-11-23 20:30:01
1

최고의 응답

0

가장 간단한 해결은 하나를 만드는 do 블록을 반환하는 경우 모든 것은 괜찮습니다. 그 중 하나를 잡을 차단하는 일이 일어날 것을 경우 아무것도 잘못된 것입니다. 당신은 또한 당신의 기능을 서명하는 선택적 값을 반환,이후에 실패하는 경우 당신은 아마 없 TransactionsClassAModel:

func myFunc() async -> TransactionsClassAModel? {

    let url = URL(string: "...")

    do {

        let undecodedData = try await networkingTools.afRequest(url: url!)
        let decodedData = try JSONDecoder().decode(TransactionsClassAModel.self, from: undecodedData)
        /* do anything you need */
        return decodedData // success
    } catch {
        print(error)
        return nil // no object in this case
    }
}

할 수 있는 별도의 블록,그래서 각 시도하에서 자신의 블록은,예를 들어:

func myFunc() async -> TransactionsClassAModel? {

    let url = URL(string: "...")

    var undecodedData: Data // or optional Data? if function can return nil
    do {
        let undecodedData = try await networkingTools.afRequest(url: url!)
    } catch {
        print("Failed in afReqest: \(error)")
        return nil
    }

    var decodedData: TransactionClassModel?
    do {
        decodedData = try JSONDecoder().decode(TransactionsClassAModel.self, from: undecodedData)
    } catch {
        print("Failed in decode: \(error)")
        return nil
    }
    return decodedData
}

할 수 있는 별도의 데이터를 디코딩으로 개인 함수,반환하는 함수를 호출:

private func decodeMyData(_ undecodedData; Data) -> TransactionsClassAModel? {
    do {
        return try JSONDecoder().decode(TransactionsClassAModel.self, from: undecodedData)
    } catch {
        print("Failed in decode: \(error)")
        return nil
    }
}

func myFunc() async -> TransactionsClassAModel? {

    let url = URL(string: "...")

    do {
        let undecodedData = try await networkingTools.afRequest(url: url!)
        return decodeMyData(undecodedData)
    } catch {
        print("Failed in afReqest: \(error)")
        return nil
    }
}
2021-11-23 23:01:03

아래서 반품 내부에 들어가 잡으라! 많은 이 예에는 답변 감사합니다 당신!! 공부하고 그것으로 나는 이것을 쓰기.
Albert

다른 언어로

이 페이지는 다른 언어로되어 있습니다

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................