我知道这个问题在几次之前被问过,但我没有得到它。 这是我的代码:
override func viewDidLoad() {
super.viewDidLoad()
// Fetch colors
let fetchRequest = NSFetchRequest<NSFetchRequestResult>(entityName: "Color")
let sortDescriptor = NSSortDescriptor(key: "number", ascending: false)
fetchRequest.sortDescriptors = [sortDescriptor]
do {
let colors = try managedObjectContext!.fetch(fetchRequest) as! [Color]
for var i in 0...4 {
let saveColorBtn = UIButton(frame: CGRect(x: i * 70 , y: Int(self.view.frame.maxY - 120), width: 50, height: 50))
saveColorBtn.tag = i
if let savedColor = colors.first(where: {$0.number == i}) {
saveColorBtn.backgroundColor = UIColor(red: CGFloat(savedColor.r), green: CGFloat(savedColor.g), blue: CGFloat(savedColor.b), alpha: CGFloat(savedColor.a))
} else {
saveColorBtn.backgroundColor = .lightGray
}
self.view.addSubview(saveColorBtn)
}
} catch let error as NSError
{
NSLog("Unresolved error \(error), \(error.userInfo)")
}
}
当我搜索$ 0.number == 0时,它工作正常,但是当我搜索$ 0.number == i时,我收到错误“无法调用非函数类型的值'颜色?'”
“colors”是一个包含“color”类型对象的数组