>我正在尝试将 Parse 中的用户名添加到数组中以在 UITableView 中显示它们,但是当我将用户名附加到我的数组时出现错误。
我得到的错误是:无法使用类型为"(字符串?!
我做错了什么?
var usernames = [""]
func updateUsers() {
var query = PFUser.query()
query!.whereKey("username", notEqualTo: PFUser.currentUser()!.username!)
var fetchedUsers = query!.findObjects()
for fetchedUser in fetchedUsers! {
self.usernames.append(fetchedUser.username)
}
}
我解决了我的问题。我将数组声明为空数组,并使用以下代码解开可选数组:
var usernames = [String]()
self.usernames.removeAll(keepCapacity: true)
for fetchedUser in fetchedUsers! {
if let username = fetchedUser.username as String! {
self.usernames.append(username)
}
}
PFUser.username
是可选的,你不能在 Swift 中将可选附加到 String
数组中。这是因为 optional 可以nil
,而 Swift 中的字符串数组只接受字符串。
您需要强制解开可选包,或者使用 if-let 语法添加它(如果存在)。
强制展开
self.usernames.append(fetchedUser.username! as String)
或者如果让
if let name = fetchedUser.username as? String {
self.usernames.append(name)
}
另外,正如NRKirby在关于您的问题的评论中提到的,您可能希望以不同的方式看待初始化usernames
数组。目前,第一个元素是一个空字符串。