从 Parse.com (Swift) 检索数据

Posted

技术标签:

【中文标题】从 Parse.com (Swift) 检索数据【英文标题】:Retrieving data from Parse.com (Swift) 【发布时间】:2015-08-14 03:41:42 【问题描述】:

我正在尝试将 Parse.com 上创建的对象中的数据提取到包含标签和图像的自定义单元格中。到目前为止我实现的代码运行但我的 tableview 仍然是空的,并且在运行时显示以下错误。错误:线程 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
                
        
    

【问题讨论】:

***.com/questions/32006749/… 【参考方案1】:

问题是您可能已经在 tableview 中有没有新标签/图像的单元格。 您需要告诉程序在没有新类型输入的地方插入一种文本。

在这种情况下,我已经在一个月前从事了一个项目,现在我开始在我的单元格中插入更多标签,这就是问题出现的地方,所以以前的单元格没有这些信息。 所以我只是告诉系统检查所有单元格,如果一个单元格没有所需的文本,它应该只输入一些占位符文本(在这种情况下 = "")。

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”的部分下方输入代码”。

【讨论】:

请不要破坏您自己的答案。如果你不想要它,你可以删除它。

以上是关于从 Parse.com (Swift) 检索数据的主要内容,如果未能解决你的问题,请参考以下文章

从 Parse (Swift) 中检索图像到 imageView

Swift - parse.com 的变量范围问题

从firebase实时数据库IOS Swift中检索数据

从 Parse.com 流式传输音频 - 没有检索到数据?

Swift,parse.com:如何从查询中传递数据

从 Parse.com 检索搜索结果的数据