ios - 如何在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)
}
}
解决方案
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)
}
}
只需let
从let friendcomparison = "yes"
并[weak self]
与let friendcomparison = self?.friendcomparison
推荐阅读
- python - Python CV2 find.contours 最小尺寸
- python - 将 BooleanField 添加到 django 模型,现有项目的此字段应为 True,对于新项目应为 False
- python - 使用 django 构建 Web 仪表板
- facebook-graph-api - Facebook api 从买卖组中检索帖子
- vespa - vespa-model-inspect 在 Redhat 7.6 上引发分段错误
- protractor - 使用辅助类中的 this.currentTestState
- r - 参数化查询不适用于 SQL Server 2017
- sql-server - 为什么 DELETE TOP(X) 语句没有删除先前 SELECT TOP(X) 返回的相同记录?
- javascript - 嵌入式视频 (Vimeo) 页面加载优化
- python - 如何将所选元素与行中的总和值相除,对角线 PANDAS 上的值除外