に(記述)エラーのinitに変更されました:initはこのコードはスウィフト2で正常に動作スウィフト3
guard let userData = responseData["UserProfile"] as? [String : AnyObject] else { return }
var userProfileFieldsDict = [String: String]()
if let profileUsername = userData["Username"] as? NSString {
userProfileFieldsDict["username"] = String(profileUsername)
}
if let profileReputationpoints = userData["ReputationPoints"] as? NSNumber {
userProfileFieldsDict["reputation"] = String(profileReputationpoints)
}
しかし、Swift 3
にそれはinitがあり
を言っ
userProfileFieldsDict["reputation"]
上のエラーをスローしますinitという名前に変更されました。(
私の質問は、その行で、なぜuserProfileFieldsDict["username"]
割り当て行ではなく、どのようにそれを修正するために行くd?私はNSNumber
をString
にキャストしようとしていると仮定していますが、その理由を本当に理解できません。
'NSNumber'は数字(' Float'、 'Double'、' Int'、でも 'Bool')のすべての種類を格納することができます - あなたは、文字列表現が見えるように期待して何をすべきか? – Hamish