,이 초기화가 failable해야한다 : 나는 아래 클래스의 클래스 인스턴스를 생성 할
class LoginData
{
var sessionToken : String!
init(fromJson json: JSON!)
{
if json == nil
{
return
}
sessionToken = json["Session_Token"].stringValue
}
}
. sessionToken
은 더 이상 암시 적으로 래핑되지 않은 옵션 (String!
) 일 필요가 없습니다. 또한 Swift의 컨벤션 코드를 포맷했습니다.
class LoginData {
var sessionToken: String
init?(fromJson json: JSON) {
guard let sessionToken = json["Session_Token"].stringValue else {
return nil
}
self.sessionToken = sessionToken
}
}
다음과 인스턴스화 :
guard let loginData = LoginData(fromJson: someJson) else {
//Initializer failed. Recover from error here.
//Must break, return, or call @noreturn function
}
//use loginData
당신 해야 호출 매개 변수없이 존재하는 어떤 초기화가 없기 때문에 JSON 매개 변수를 사용하여 초기화.
이 'var에 objLoginData = LoginData 같은 시도 (fromJson : JSON)' [추가 정보를 위해] (http://www.tutorialspoint.com/swift/swift_initialization.htm)의 매우 혼란스러운 디자인의 – Chandan
을 이니셜 라이저. 실패 할 때'nil'을 리턴하는 fails 이니셜 라이저 ('init? (...'))를 생성하거나 인스턴스를 생성하기 전에 JSON을 체크하고 non-optional 타입을 사용하십시오. – vadian
내가 이걸 시도하면 var objLoginData = LoginData (fromJson : json), json을 선언 할 필요가있다. @ Chandan Prajapati – GuganReddy