我正在尝试在数组中添加Parse中的用户名以在UITableView中显示它们,但是当我将用户名附加到我的数组时会出错。
我得到的错误是:无法使用类型'(String?!)'
的参数列表调用'append'我做错了什么?
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)
}
}
答案 0 :(得分:2)
我解决了我的问题。我将数组声明为一个空数组,并使用以下代码解包该选项:
var usernames = [String]()
self.usernames.removeAll(keepCapacity: true)
for fetchedUser in fetchedUsers! {
if let username = fetchedUser.username as String! {
self.usernames.append(username)
}
}
答案 1 :(得分:0)
PFUser.username
是可选的,您无法将可选项附加到Swift中的String
数组中。这是因为可选项可以是nil
,Swift中的String数组只接受字符串。
您需要强制打开可选项,或者使用if-let语法添加它(如果存在)。
强行打开
self.usernames.append(fetchedUser.username! as String)
或者if-let
if let name = fetchedUser.username as? String {
self.usernames.append(name)
}
另外,正如NRKirby在您对问题的评论中提到的那样,您可能希望以不同方式初始化usernames
数组。目前第一个元素是一个空字符串。