【问题标题】:fatal error: Cannot index empty buffer致命错误:无法索引空缓冲区
【发布时间】:2015-04-02 13:05:51
【问题描述】:

我声明了一个全局变量_dataArray:

    var _dataArray : Array<AnyObject> = Array();

然后定义一个函数:

    func fetchCoreData(userName: String){
    var context : NSManagedObjectContext = appDel.managedObjectContext!
    var request = NSFetchRequest(entityName: "GoodModel")
    request.returnsObjectsAsFaults = false
    request.predicate = NSPredicate(format: "uid = %@",_userUid )
    let _dataArray = context.executeFetchRequest(request, error: nil)!
    if(_dataArray.count == 0){
        println("We need to parse JSON")
        self.parseJSON()
    }else{
        println("Display from CoreData, we do not need to parse JSON!")
        println("_dataArray.count:%d",_dataArray.count)
        self.tableView.reloadData()
    }
}

从控制台,我可以看到这个 _dataArray 中有 20 个对象。 但是在下面的函数中,_dataArray的计数是0。为什么?????????

@IBAction func endorseButton(sender: AnyObject, forEvent event: UIEvent) {
    println(_dataArray.count)
    let touches = event.allTouches()
    let touch: AnyObject? = touches?.anyObject()
    let currentTouchPosition = touch?.locationInView(self.tableView)
    let indexPath = self.tableView.indexPathForRowAtPoint(currentTouchPosition!)?
    if let ip = indexPath {
        var data:NSManagedObject = _dataArray[ip.row] as NSManagedObject
    }
}

【问题讨论】:

    标签: swift core-data


    【解决方案1】:

    问题出在这一行:

    let _dataArray = context.executeFetchRequest(request, error: nil)!
    

    您声明 本地 _dataArray

    你应该省略let:

    _dataArray = context.executeFetchRequest(request, error: nil)!
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-15
      • 2017-06-17
      相关资源
      最近更新 更多