JSON 개체를 만드는 데 문제가 있습니다. nil 값으로 두 번째 수준 요소를 만들 때까지 모든 것이 괜찮습니다.
var json = [String: AnyObject]()
json["id"] = 1234567
let secondLevel : [String: AnyObject] = ["i1": 12, "i2": "not nil"]
json["secondLevel"] = secondLevel
이것은 괜찮지 만 시도하면 :
let secondLevel : [String: AnyObject?] = ["i1": 12, "i2": nil]
json["secondLevel"] = secondLevel
다음과 같은 오류가 발생했습니다.
'[String : AnyObject?]'유형의 값을 'AnyObject?'유형의 값에 할당 할 수 없습니다.
무엇 않습니다 그 의미? 하지 않은가요 [String:AnyObject?]
의 AnyObject
유형은?
이 오류를 방지하려면 어떻게해야합니까?
AnyObject 대신 Any 를 사용할 수 있습니다.
Any 및 AnyObject에 대한 유형 캐스팅
Swift는 비 특정 유형 작업을 위해 두 가지 특수 유형 별칭을 제공합니다.
AnyObject는 모든 클래스 유형의 인스턴스를 나타낼 수 있습니다. Any는 함수 유형을 제외하고는 모든 유형의 인스턴스를 나타낼 수 있습니다.
참고 : Any 및 AnyObject는 제공하는 동작과 기능이 명시 적으로 필요한 경우에만 사용하십시오. 코드에서 작업 할 것으로 예상되는 유형을 구체적으로 지정하는 것이 항상 좋습니다.
var json = [String: Any]()
json["id"] = 123452
let secondLevel : [String: Any?] = ["i1": 12, "i2": nil]
json["secondLevel"] = secondLevel
print(json)
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다