ios - 完成 block Swift 后设置标签文本

标签 ios swift parse-platform thread-safety

我想将用户名设置为标签,因为我的 block ("findObjectsInBackgroundWithBlock") 需要时间才能完成并且 label.text 设置了 nil

完成区 block 后如何设置标签文字??

class test {         

var userName: String? // variable to access user name returned by block        
private func loadData() {      

getCurrentUser()         
lblUserName.text = userName       

}    

}

这是我从 Parse 获取用户数据的 block 。

private func getCurrentUser() {         

        if PFUser.currentUser() != nil { 

            currentUser = PFUser.currentUser()?.username    
            let query = PFQuery(className: "_User")    
            query.whereKey("username", equalTo: currentUser!)    
            query.findObjectsInBackgroundWithBlock { (currentUsers, error) -> Void in 
                if error == nil {     
                    for user in currentUsers! {     
                       userName = user["name"] as? String      
                    }   
                }
            }
        }
    }

最佳答案

你可以像这样使用属性观察器:

var userName: String? {
    didset {
       if let name = username {
           lblUserName.text = name
       } 
    }
}

关于ios - 完成 block Swift 后设置标签文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35308869/

相关文章:

Java/解析错误。试图从 android sdk 发送到 Parse

ios - 解析数据未出现在 iOS 9 Beta 4 中

ios - 自定义 UICollectionViewCell 的自定义初始值设定项

ios - 找不到 Objective C 桥接头文件

swift - 如何在 Swift 中选择具有 NSRange 的 textView 中的文本?

ios - 迭代对象 Swift - 数组超出索引 - TableView 中的 AlamofireObjectMapper

facebook-graph-api - 哪个 Unity 平台最适合 Facebook Canvas 应用程序

ios - 如何在我的 iOS 应用程序中显示 HealthKit 数据?

ios - 从自定义 TableViewCell 中的按钮访问主视图

ios - 如何使两个坐标相互匹配?