2014-10-01 2 views
2

스위프트의 모델 중 하나에 initWithDictionary 이니셜 라이저를 만들려고합니다. 나는 다음과 같은 오류를 받고 있어요스위프트의 편리한 초기화 도구

class CityModel: NSObject { 

    var country: String 
    var mapLat: String 
    var mapLng: String 
    var mapZoom: Int 
    var name: String 
    var nameShort: String 
    var timezone: String 
    var token: String 

    init(country: String, mapLat: String, mapLng: String, mapZoom: Int, name: String, nameShort: String, timezone: String, token: String) { 
     self.country = country 
     self.mapLat = mapLat 
     self.mapLng = mapLng 
     self.mapZoom = mapZoom 
     self.name = name 
     self.nameShort = nameShort 
     self.timezone = timezone 
     self.token = token 
    } 

    convenience init(dict: Dictionary<String, AnyObject>) { 
     self.init(
      country: (dict["country"] as String), 
      mapLat: (dict["mapLat"] as String), // error 
      mapLng: (dict["mapLng"] as String), 
      mapZoom: (dict["mapZoom"] as Int), 
      name: (dict["name"] as String), 
      nameShort: (dict["nameShort"] as String), 
      timezone: (dict["timezone"] as String), 
      token: (dict["token"] as String) 
     ) 
    } 
} 

:

CityModel.swift:34:18: Extra argument 'mapLat' in call 

을 그리고 난 내가 잘못 뭘하는지 몰라 두려워 이것은 내가 할 노력하고있어 것입니다. 어떤 생각?

답변

3

변경하여 dict 선언 :

이 아닌 클래스 유형을 포함하여 유형의 혼합을 사용하는 때문입니다
dict: Dictionary<String, Any> 

. 여기 스위프트 문서에서

더 많은 정보 : "추가 인수"오류 메시지가 붉은 청어 것을 https://developer.apple.com/library/prerelease/mac/documentation/Swift/Conceptual/Swift_Programming_Language/TypeCasting.html#//apple_ref/doc/uid/TP40014097-CH22-XID_505

. 나는 그것이 일반적으로 일치하지 않는 인수의 유형에 대해 불평한다는 것을 발견했습니다.

+1

문제가 해결되었습니다. 감사. –