У меня проблема с некоторым кодом. У меня есть функция под названием вложения. Он вызывает DatabaseManager для определенной функции getttachmentdata. Это вызывает coredata, чтобы увидеть, загрузил ли пользователь изображение, и вызвать его. Если он есть, у меня есть другая часть кода, где пользователь нажимает кнопку, и он показывает это изображение.
Проблема в том, что когда данные пустые или ничего не загружено, я хотел, чтобы кнопка была отключена. Это может быть простым исправлением, но я не совсем уверен на самом деле.
let attachments = DataBaseManager().getAttachmentData()
if attachments.isEmpty {
btnProofOfDelivery.isHidden = true
btnProofOfDelivery.isEnabled = false
}
Я написал код выше, однако, когда я попытался запустить мою программу, она все еще отображала кнопку, которую я хотел исчезнуть. Запуск без оператора if приводит к исчезновению кнопки.
код для getattachments
func getAttachmentData()-> Array<Data>{
var data1 = [Data]()
let context = CoreData.sharedCoreData.managedObjectContext
let request = NSFetchRequest<NSFetchRequestResult>(entityName: "Attachments")
do {
let result = try context.fetch(request)
print(result)
for data in result as! [NSManagedObject] {
print(data.value(forKey: "attachment") as! Data)
data1.append(data.value(forKey: "attachment") as! Data)
}
if data1.count == 0 {
return [Data()]
}else{
return data1
}
} catch {
return [Data()]
}
}