swift- '(AnyObject)'는 'NSObject'의 하위 유형이 아닙니다.

Obosso Tv

나는 신속한 개발이 처음이고 튜토리얼을 따랐고이 오류를 발견하고 수정하는 방법을 모르겠습니다. 도와주세요 ?

if let json = response.result.value {
    let jsonArray:NSArray = json as! NSArray
    /// On fait la boucle pour avoir la liste globale des éléments a afficher
    for i in 0..<jsonArray.count {
        self.OPlays.append(Playlist(
            title:(jsonArray[i] as AnyObject).value(forKey: "title") as? String,
                artist:(jsonArray[i] as AnyObject).value(forKey: "artist") as? String,
                categorie:(jsonArray[i] as AnyObject).value(forKey: "categorie") as? String,
                cover_url:(jsonArray[i] as AnyObject).value(forKey: "cover_url") as? String)
        )
    }
    self.tableViewPlaylist.reloadData()
}        

뉴스 파일이 정확합니다.

if let json = response.result.value {
    let jsonArray:NSArray = json as! NSArray

    /// On fait la boucle pour avoir la liste globale des éléments a afficher
    for i in 0..<jsonArray.count {
        self.OPlays.append(Playlist(
            id: (jsonArray[i] as AnyObject).value(forKey: "id") as? Int,
            title: (jsonArray[i] as AnyObject).value(forKey: "title") as? String,
            artist: (jsonArray[i] as AnyObject).value(forKey: "artist") as? String,
            cover_url: (jsonArray[i] as AnyObject).value(forKey: "cover_url") as? String,
            categorie: (jsonArray[i] as AnyObject).value(forKey: "categorie") as? String
        ))
    }
    self.tableViewPlaylist.reloadData()
}
Rob

나는 그 모든 AnyObject코드를 절제 할 것이다 .

if let array = response.result.value as? [[String: Any]] {
    for dictionary in array {
        self.OPlays.append(Playlist(
            id: dictionary["id"] as? Int,
            title: dictionary["title"] as? String,
            artist: dictionary["artist"] as? String,
            categorie: dictionary["categorie"] as? String,
            cover_url: dictionary["cover_url"] as? String
        ))
    }
    self.tableViewPlaylist.reloadData
}

개인적으로 저는 한 단계 더 나아가 JSON을 수동으로 디코딩하는 일에서 벗어날 것입니다. 사용 JSONDecoder.

struct Playlist: Codable {
    let id: Int?
    let title: String?
    let artist: String?
    let categorie: String?
    let cover_url: String?
}

그런 다음 data래핑되지 않은 Data개체 있다고 가정 합니다.

do {
    self.OPlays = JSONDecoder().decode([Playlist].self, from: data)
} catch {
    print(error)
}

또는 Alamofire를 사용하는 경우 JSONDecoder기반 response방법 이있는 Alamofire 5를 고려하십시오 .

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Swift3의 컴파일 오류 : 'AnyObject'는 'NSObject'의 하위 유형이 아닙니다.

분류에서Dev

스위프트-[NSObject : AnyObject]! ' 'Dictionary <String, AnyObject>의 하위 유형이 아닙니다.

분류에서Dev

AnyObject는 SIOParameterArray의 하위 유형이 아닙니다.

분류에서Dev

AnyObject는 SIOParameterArray의 하위 유형이 아닙니다.

분류에서Dev

Swift : NSNumber는 UIViewAnimationCurve의 하위 유형이 아닙니다.

분류에서Dev

'AnyObject?' CustomClass의 하위 유형이 아닙니다.

분류에서Dev

조건부 바인딩의 이니셜 라이저에는 '[NSObject : AnyObject]'SwiftyJSON이 아닌 선택적 유형이 있어야합니다.

분류에서Dev

Flutter 'Future <void>'는 'Widget'유형의 하위 유형이 아닙니다.

분류에서Dev

'Timestamp'는 'int'유형의 하위 유형이 아닙니다.-Flutter-Firebase Firestore

분류에서Dev

Flutter Real Time Database Account '는'transform '의'(dynamic, dynamic) => MapEntry <dynamic, dynamic> '유형의 하위 유형이 아닙니다.

분류에서Dev

Flutter String, dynamic '은 유형의 하위 유형이 아닙니다.

분류에서Dev

Provider가있는 FutureBuilder : List는 Future <List> 유형의 하위 유형이 아닙니다.

분류에서Dev

오류 : JSON을 가져 오는 동안 List <dynamic>이 Map <String, dynamic> 유형의 하위 유형이 아닙니다.

분류에서Dev

[NSObject : AnyObject] 유형의 사전에 "value (forKeyPath : ...)"멤버가 없습니다.

분류에서Dev

type 'int'는 type cast json에서 'String'유형의 하위 유형이 아닙니다. 디코딩 문제

분류에서Dev

Flutter-[barcode_scan] ScanResult는 문자열 유형의 하위 유형이 아닙니다.

분류에서Dev

이 스 니펫이 " 'Future <dynamic>'유형은 문자열 유형의 하위 유형이 아닙니다"를 제공하는 이유는 무엇입니까?

분류에서Dev

'Future <Null>'유형은 '위젯'유형의 하위 유형이 아닙니다.

분류에서Dev

Dart TypeError : 유형이 Null 유형의 하위 유형이 아닙니다.

분류에서Dev

유형 캐스트 오류에서 '_InternalLinkedHashMap <String, String>'유형을 수정하는 방법이 'String'유형의 하위 유형이 아닙니다.

분류에서Dev

'문자열'유형은 '파일'유형의 하위 유형이 아닙니다.

분류에서Dev

'LabeledGlobalKey <State <StatefulWidget >>'유형은 'GlobalKey <ScaffoldState> 유형의 하위 유형이 아닙니다.

분류에서Dev

Flutter 및 Firebase : 'Query'유형은 'CollectionReference'유형의 하위 유형이 아닙니다.

분류에서Dev

'String'유형은 'double'유형의 하위 유형이 아닙니다.

분류에서Dev

'FirebaseFirestore'유형은 'Firestore'유형의 하위 유형이 아닙니다.

분류에서Dev

'_InternalLinkedHashMap <String, dynamic>'유형은 'String'유형의 하위 유형이 아닙니다.

분류에서Dev

'List <dynamic>'유형은 'Widget'유형의 하위 유형이 아닙니다.

분류에서Dev

'List <Widget>'유형은 'Widget'유형의 하위 유형이 아닙니다.

분류에서Dev

Flutter : 'List <Widget>'유형은 'Widget'유형의 하위 유형이 아닙니다.

Related 관련 기사

  1. 1

    Swift3의 컴파일 오류 : 'AnyObject'는 'NSObject'의 하위 유형이 아닙니다.

  2. 2

    스위프트-[NSObject : AnyObject]! ' 'Dictionary <String, AnyObject>의 하위 유형이 아닙니다.

  3. 3

    AnyObject는 SIOParameterArray의 하위 유형이 아닙니다.

  4. 4

    AnyObject는 SIOParameterArray의 하위 유형이 아닙니다.

  5. 5

    Swift : NSNumber는 UIViewAnimationCurve의 하위 유형이 아닙니다.

  6. 6

    'AnyObject?' CustomClass의 하위 유형이 아닙니다.

  7. 7

    조건부 바인딩의 이니셜 라이저에는 '[NSObject : AnyObject]'SwiftyJSON이 아닌 선택적 유형이 있어야합니다.

  8. 8

    Flutter 'Future <void>'는 'Widget'유형의 하위 유형이 아닙니다.

  9. 9

    'Timestamp'는 'int'유형의 하위 유형이 아닙니다.-Flutter-Firebase Firestore

  10. 10

    Flutter Real Time Database Account '는'transform '의'(dynamic, dynamic) => MapEntry <dynamic, dynamic> '유형의 하위 유형이 아닙니다.

  11. 11

    Flutter String, dynamic '은 유형의 하위 유형이 아닙니다.

  12. 12

    Provider가있는 FutureBuilder : List는 Future <List> 유형의 하위 유형이 아닙니다.

  13. 13

    오류 : JSON을 가져 오는 동안 List <dynamic>이 Map <String, dynamic> 유형의 하위 유형이 아닙니다.

  14. 14

    [NSObject : AnyObject] 유형의 사전에 "value (forKeyPath : ...)"멤버가 없습니다.

  15. 15

    type 'int'는 type cast json에서 'String'유형의 하위 유형이 아닙니다. 디코딩 문제

  16. 16

    Flutter-[barcode_scan] ScanResult는 문자열 유형의 하위 유형이 아닙니다.

  17. 17

    이 스 니펫이 " 'Future <dynamic>'유형은 문자열 유형의 하위 유형이 아닙니다"를 제공하는 이유는 무엇입니까?

  18. 18

    'Future <Null>'유형은 '위젯'유형의 하위 유형이 아닙니다.

  19. 19

    Dart TypeError : 유형이 Null 유형의 하위 유형이 아닙니다.

  20. 20

    유형 캐스트 오류에서 '_InternalLinkedHashMap <String, String>'유형을 수정하는 방법이 'String'유형의 하위 유형이 아닙니다.

  21. 21

    '문자열'유형은 '파일'유형의 하위 유형이 아닙니다.

  22. 22

    'LabeledGlobalKey <State <StatefulWidget >>'유형은 'GlobalKey <ScaffoldState> 유형의 하위 유형이 아닙니다.

  23. 23

    Flutter 및 Firebase : 'Query'유형은 'CollectionReference'유형의 하위 유형이 아닙니다.

  24. 24

    'String'유형은 'double'유형의 하위 유형이 아닙니다.

  25. 25

    'FirebaseFirestore'유형은 'Firestore'유형의 하위 유형이 아닙니다.

  26. 26

    '_InternalLinkedHashMap <String, dynamic>'유형은 'String'유형의 하위 유형이 아닙니다.

  27. 27

    'List <dynamic>'유형은 'Widget'유형의 하위 유형이 아닙니다.

  28. 28

    'List <Widget>'유형은 'Widget'유형의 하위 유형이 아닙니다.

  29. 29

    Flutter : 'List <Widget>'유형은 'Widget'유형의 하위 유형이 아닙니다.

뜨겁다태그

보관