append(contentsOf:
ожидает последовательность элементов, вы должны использовать только append(
, и вы должны переместить строку добавления в if let
тело
if let firstusername = result.value(forKey: "username") as? String {
testArray.append(firstusername)
}
или если вы хотите добавить пустую строку, если имени нет
testArray.append((result.value(forKey: "username") as? String) ?? "")
Тем не менее, ваш метод содержит много избыточного кода, этого достаточно
func loadData() throws -> Array<String> {
let appDelegate = UIApplication.shared.delegate as! AppDelegate
let context = appDelegate.persistentContainer.viewContext
let request = NSFetchRequest<Users>(entityName: "Users")
request.returnsObjectsAsFaults = false
let results = try context.fetch(request)
return results.compactMap{ $0.username }
}
Возвращает массив имен или передает потенциальную ошибку.