これは初心者の質問ですが、私はstackoverflowまたはgoogleで答えを見つけることができません。Xcodeの警告 - 変数が突然変更されていません
私はSwift 3言語でプロジェクトを書いています。ここに私のモデルクラスは次のとおりです。
class VKUserProfile: NSObject {
var userId: NSNumber?
var userName: String?
var userEmail: String?
var userMobilePhone: String?
var userPictureUrl: URL?
}
その後、私は別のクラスでそれを使用します。
private func convert(user: Dictionary<String, Any>) -> VKUserProfile {
var currentUser: VKUserProfile = VKUserProfile()
currentUser.userId = user["id"] as? NSNumber
return currentUser
}
Xcodeはライン ":VKUserProfile = VKUserProfile()VaRのCurrentUserに" の私を警告します。しかし、私はそれを "currentUser:VKUserProfile = VKUserProfile()"に変更すると、プロパティを設定できません(オブジェクトは空です)。だから誰かが私にこのプロセスを説明することができます、なぜXcodeは警告し、私はこれを修正することができます。
UPDATE:ここ があるCurrentUserが聞かせているCurrentUserに変数のスクリーンショットです:
そしてあるCurrentUserがVARであるとき、これはCurrentUserに変数のスクリーンショットです:
あなたは 'let'を使う必要があります。それはあなたの直ちの問題を解決します。ここで、「私はどんなプロパティも設定できません」という意味を明確にします。 – rmaddy
@rmaddy私は、 "currentUser:VKUserProfile = VKUserProfile()"と入力し、 "currentUser.userId = user [" id "]?NSNumber"のような変数を設定すると、currentUserはまだ空です。変数が設定されていません。 currentUserに格納されているデータはありません。私はこのオブジェクトを私のUIViewControllerに渡し、それを使用することはできません(currentUserにはデータがないため)。 –
'user'には与えられたキーの値があり、その値は与えられた型のものですか? 'let/var'を使うのではなく、プロパティを設定することで、あなたの質問を本当に編集する必要があります。 – rmaddy