ios - 如何在核心数据中保存明天日期任务以及如何将这些任务放入 Swift 的 TableView 中?

标签 ios swift core-data nspredicate

如何在核心数据中保存明天日期任务以及如何将这些任务放入 Swift 的 TableView 中?

当我打印(“对象在明天任务中:(filterTomorrowTask.count)”)时,它显示nil数组。 我不知道如何修复这个错误。我是 Swift 新手,所以不知道如何解决这个问题。

实用类:

class FilteredData
{
    static func filterTomorrowTask(filteredObject: String) -> [Task]
    {
        let fetchRequest: NSFetchRequest<Task> = Task.fetchRequest()

        var user: [Task]? = nil

        let predicate = NSPredicate(format: "date_from == %@", filteredObject)
        fetchRequest.predicate = predicate

        do {
            user = try context.fetch(fetchRequest)
            return user!
        }
        catch {
            return user!
        }
    }

}

ViewController.h

//CoreData Object
var filterTomorrowTask: [Task] = []

override func viewDidLoad() {
        super.viewDidLoad()

        self.tomorrowFilterTask()
        self.tblToday.reloadData()
    }

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int
    {
        if tableView == self.tblTomorrow
        {
            print("Tomorrow Count \(filterTomorrowTask.count)")
            return filterTomorrowTask.count
        }
        else
        {
            return 0
        }
    }

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
    {
        if tableView == self.tblTomorrow
        {
                let cell = tableView.dequeueReusableCell(withIdentifier: "TomorrowTaskCell", for: indexPath) as! TomorrowTaskTVCell

                let filteredResult = filterTomorrowTask[indexPath.row]
                cell.lblTask.text = filteredResult.task_name
                cell.tfTime.text = filteredResult.time_from

                return cell

        }
        else {
            let cell = tableView.dequeueReusableCell(withIdentifier: "TomorrowTaskCell", for: indexPath) as! TomorrowTaskTVCell

            return cell
        }

    }

func tomorrowFilterTask()
    {
        isTomorrow = true

        //Adding 1 to Current Date
        let today = Date()
        let tomorrow = Calendar.current.date(byAdding: .day, value: 1, to: today)
        let formatter = DateFormatter()
        formatter.dateStyle = .medium
        formatter.dateFormat = "yyyy-MM-dd"
        let strTomorrow = formatter.string(from: tomorrow!)

        filterTomorrowTask = FilteredData.filterTomorrowTask(filteredObject: strTomorrow)

    }

最佳答案

您可以尝试使用如下 Func 一次

class FilteredData
{
    static func filterTomorrowTask(filteredObject: String) -> [Task]
    {
        let fetchRequest = NSFetchRequest<NSFetchRequestResult>(entityName: "Your Entity Name")

        var user: [Task]? = nil

        let predicate = NSPredicate(format: "date_from == %@", filteredObject)
        fetchRequest.predicate = predicate

        do {
            user = try context.fetch(fetchRequest)
            return user!
        }
        catch {
            return user!
        }
    }

}

或者只是简单地不创建用户的特殊实例

class FilteredData
    {
        static func filterTomorrowTask(filteredObject: String) -> [Task]
        {
            let fetchRequest = NSFetchRequest<NSFetchRequestResult>(entityName: "Your Entity Name")

            let predicate = NSPredicate(format: "date_from == %@", filteredObject)
            fetchRequest.predicate = predicate

            ///Handler
    do
    {
        let response = try context.fetch(fetchRequest)
        return response as! [Audio]

    }
    catch let error as NSError
    {
        ///failure
        print(error)
        return [Audio]()
    }
        }

    }

关于ios - 如何在核心数据中保存明天日期任务以及如何将这些任务放入 Swift 的 TableView 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48636026/

相关文章:

ios - 如何在 SpriteKit 和 SceneKit 中暂停游戏 - SWIFT

swift - 如果 firebase 中的所有子值都为 true,我想编写条件(swift)

swift - 根据y值升序或降序更改collisionBitMask

ios - 核心数据与同一实体的关系

android - 如何从另一个类访问列表的长度

ios - 更改 UIImage Picker 按钮标签文本

ios - 使用本地数组数据、Swift、UITableView 更新 Parse 数组

ios - iOS 11 + Xcode 9 中的 refreshPreferences HangTracerEnabled/HangTracerDuration 消息

ios - “Can' t 添加目标存储”核心数据迁移错误

ios - 从 'NSPersistentStoreResult' 转换为无关类型 '[entity]' 总是失败