Получение данных с Parse.com (Swift)

Я пытаюсь получить данные из объекта, созданного на Parse.com, в пользовательскую ячейку, содержащую метки и изображения. Код, который я реализовал до сих пор, работает, но мое табличное представление остается пустым, и во время выполнения отображается следующая ошибка. ОШИБКА: поток 1: Exc_BAD_INSTRUCTION (код = EXC_1386_INVOP, субкод = 0x0). Может кто-нибудь объяснить, почему это происходит? Я новичок в программировании в Xcode.

@objc
protocol ViewControllerDelegate {
optional func toggleLeftPanel()
optional func toggleRightPanel()
optional func collapseSidePanels()
}
class ViewController: UITableViewController, UITableViewDataSource,        UITableViewDelegate
{
    var delegate: ViewControllerDelegate?
    var arrayOfParties: [Information] = [Information]()
    @IBAction func menuTapped(sender: AnyObject) {
        delegate?.toggleLeftPanel?()
    }
    override func viewDidLoad()
    {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        self.loadData()
    }

    override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int
    {
        //return self.arrayOfParties.count
        return self.arrayOfParties.count
    }

    //Function to adjust the height of the custom cell
    override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat
    {
    return 230
    }
    override func tableView(tableView: UITableView,cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
    {
        let cell: CustomCell = tableView.dequeueReusableCellWithIdentifier("Cell") as! CustomCell
        let party = arrayOfParties[indexPath.row]
        cell.setCell(party.partyName, promoterLabelText: party.promoterName, partyCostLabelText: party.partyCost, partyFlyerUIImage: party.flyerImage, promoterUIImage: party.promoterImage)
        return cell
    }
    func loadData()
    {
        var  findDataParse:PFQuery = PFQuery(className: "flyerDataFetch")
        findDataParse.findObjectsInBackgroundWithBlock{
            (objects: [AnyObject]?, error: NSError?)->Void in
            if (error == nil){
                for object in objects!
                {
                    var party1 =  Information(partyName: (object["partyName"] as? String)!, promoterName: (object["promoterName"] as? String)!, partyCost: (object["partyCost"] as? String)!, flyerImage: "", promoterImage: "")
                    self.arrayOfParties.append(party1)
                }
            }
            else {
                   // something went wron
                }
        }
    }
}

person Cari95    schedule 14.08.2015    source источник
comment
stackoverflow.com /вопросы/32006749/   -  person Hamza Ansari    schedule 14.08.2015


Ответы (1)


Проблема в том, что у вас, вероятно, уже есть ячейки в табличном представлении, у которых нет новых меток/изображений. Вам нужно сказать программе вставить тип текста, где нет ввода нового типа.

В этом случае я уже месяц назад работал над проектом, и теперь я начал вставлять больше меток в свою ячейку, вот где всплывает проблема, поэтому в предыдущих ячейках нет этой информации. Поэтому я просто говорю системе проверить все ячейки, если в ячейке нет нужного текста, она должна просто ввести какой-то текст-заполнитель (в данном случае = "").

if let content = text.objectForKey("Content") as? String {

        cell.TextView.alpha = 1.0
        cell.TextView.text = content
    }
    else{
        cell.TextView.alpha = 1.0
        cell.TextView.text = ""
    }

Я надеюсь, что это поможет, я только объяснил, как это сделать, я действительно не сказал, что вы были в своем коде, чтобы сделать это, но, насколько я вижу, вы должны ввести код прямо под той частью, где вы объявляете «Party1».

person PinkShadow00    schedule 19.08.2015
comment
Пожалуйста, не искажайте свой собственный ответ. Вы можете удалить его, если он вам не нужен. - person NathanOliver; 06.01.2016