I\'m trying to add usernames from Parse in an array to display them in a UITableView, but get an error when I\'m appending the usernames to my array.
The error I get is:
PFUser.username
is an optional, and you can't append an optional into a String
array in Swift. This is because the optional can be nil
, and a String array in Swift only accepts strings.
You need to either force unwrap the optional, or use if-let syntax to add it if it exists.
Force Unwrap
self.usernames.append(fetchedUser.username! as String)
Or if-let
if let name = fetchedUser.username as? String {
self.usernames.append(name)
}
Plus as NRKirby mentions in the comments on your question, you might want to look at initialising the usernames
array differently. At the moment the first element is an empty string.
I solved my problem. I declare the array as an empty array and for unwrap the optional with the following code:
var usernames = [String]()
self.usernames.removeAll(keepCapacity: true)
for fetchedUser in fetchedUsers! {
if let username = fetchedUser.username as String! {
self.usernames.append(username)
}
}