【问题标题】:How do I hide UITableView when no data from core data to fetch [Swift]当没有来自核心数据的数据要获取 [Swift] 时,如何隐藏 UITableView
【发布时间】:2015-10-08 11:26:26
【问题描述】:

当书签尚未完成时,如何隐藏 UITableview 但“相反”显示一个带有消息“你还没有为任何东西添加书签”的标签。我曾尝试检查核心数据中的数据是否为空,但很遗憾,它不起作用。

【问题讨论】:

    标签: xcode swift uitableview core-data


    【解决方案1】:
     override func viewWillAppear(_ animated: Bool) {
                super.viewWillAppear(animated)
                if fetchedResultsController.fetchedObjects.count == 0 {
                self.tableView.isHidden = true
      }
    }
    

    【讨论】:

      【解决方案2】:

      要检查核心数据库是否为空,您必须在要检查的实体上创建NSFetchRequest,并检查请求的结果是否为空。

      您可以使用此功能进行检查:

      func entityIsEmpty(entity: String) -> Bool
      {
      
          var appDel:AppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
          var context = NSManagedObjectContext()
      
          var request = NSFetchRequest(entityName: entity)
          var error = NSErrorPointer()
      
          var results:NSArray? = self.context.executeFetchRequest(request, error: error)
      
          if let res = results
          {
              if res.count == 0
              {
                  return true
              }
              else
              {
                  return false
              }
          }
          else
          {
              println("Error: \(error.debugDescription)")
              return true
          }
      
      }
      

      希望这会有所帮助。

      【讨论】:

        【解决方案3】:

        最简单的方法是在表视图数据源中处理此问题。如果有 0 条记录,则显示包含所需信息的不同单元格。如果您愿意,也可以隐藏表格视图并显示标签。

        numberOfRowsInSection 中,检查 0 并返回 1。 (假设您没有部分。)

        let count = fetchedResultsController.fetchedObjects.count
        return count > 0 ?? count : 1
        

        然后,在cellForRowAtIndexPath 中确保显示正确的信息。

        if fetchedResultsController.fetchedObjects.count == 0 {
           // initialize a different cell
           return cell
        }
        // configure and return usual cell
        

        【讨论】:

          猜你喜欢
          • 2016-05-12
          • 2018-10-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多