如何从我的tableView:cellForRowAtIndexPath方法中删除if条件?

时间:2016-01-15 09:28:34

标签: swift uitableview fetch

我有“fetchData”方法填充我的“imagesArray”:

func fetchData(){

    let imageQuery = PFUser.query()
    imageQuery?.whereKey("username", containedIn: namesArray)

    imageQuery!.findObjectsInBackgroundWithBlock { (objects: [PFObject]?, error: NSError?) -> Void in

        if error == nil {

            for object in objects! {
                print("\(object["username"] as! String)")

                self.imagesArray.append(object["image"] as! PFFile)
                if self.imagesArray.count == self.namesArray.count {
                    self.tableView.reloadData()
                    print("Names Order: \(self.namesArray)")
                }
            }
        } else {
            print("error: \(error?.localizedDescription)")
        }
    }
}

我有tableView:cellForRowAtIndexPath方法,该方法使用此数组来填充UIImageView实例:

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

    let cell = tableView.dequeueReusableCellWithIdentifier("Cell") as! ChatsCell
    cell.nameLabel.text = namesArray[indexPath.row]

    if imagesArray.count == namesArray.count && self.imagesLoaded == false{
        imagesArray[indexPath.row].getDataInBackgroundWithBlock { (imageData: NSData?, error: NSError?) -> Void in
            if error == nil {
                let image = UIImage(data: imageData!)
                cell.imageView?.image = image
                self.tableView.reloadData()
                self.imagesLoaded = true
            }
        }
    }

    return cell
}

实际上我使用if条件等待我的数组“imagesArray”被另一个方法的查询填充,我使用变量“imagesLoaded”来阻止reloadData方法的无限调用。 如果没有条件,我怎么能写这个方法?

0 个答案:

没有答案