Извличане на данни от 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 /questions/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