首页 > 解决方案 > 如何在init Swift中获取IF语句之外的变量

问题描述

如果当我尝试在 init 外部访问变量时在 if 语句中设置变量,则会收到错误“实例成员 'friendcomparison' 不能用于类型 'User'”。任何帮助将不胜感激,谢谢。

let friendcomparison: String

func getfriendname() {
    if frienddeeper == Auth.auth().currentUser?.uid {
        let friendcomparison = "yes"
    }
    let link = URL.init(string: credentials["profilePicLink"]!)
    URLSession.shared.dataTask(with: link!, completionHandler: { (data, response, error) in
        if error == nil {
            let profilePic = UIImage.init(data: data!)
            let user = User.init(name: name, username: username, email: email, id: id, friendstatus: friendcomparison, token: token!, profilePic: profilePic!)
            completion(user)
        }
    }

标签: iosswift

解决方案


    func getfriendname() {
        if frienddeeper == Auth.auth().currentUser?.uid {
                           friendcomparison = "yes"
                        }
                        let link = URL.init(string: credentials["profilePicLink"]!)
                        URLSession.shared.dataTask(with: link!, completionHandler: { [weak self] (data, response, error) in
                            if error == nil {
                                let profilePic = UIImage.init(data: data!)
let friendcomparison = self?.friendcomparison
                                let user = User.init(name: name, username: username, email: email, id: id, friendstatus: friendcomparison, token: token!, profilePic: profilePic!)
                                completion(user)
                            }
    }

只需letlet friendcomparison = "yes"

[weak self]let friendcomparison = self?.friendcomparison


推荐阅读