类型名称的预期标识符

时间:2015-08-20 00:58:51

标签: ios swift

以下代码给出了错误:

  

类型名称的预期标识符

也许这可能是我应该用自己处理它的原因,因为我看到了一些帖子。但它不起作用。

Xcode对我说什么样的标识符? 我该如何解决?

如果我修复了此错误,但错误较多,我应该使用UITableViewController而不是单独的UIViewControllerUITableViewDelegate吗?

import UIKit
import Parse

class Home: UIViewController, UITableViewDelegate,  {  //error here "expected identifier for type name"


    @IBOutlet weak var homepageTableView: UITableView!
    var imageFiles = [PFFile]()
    var imageText = [String]()

    override func viewDidLoad() {
        super.viewDidLoad()

        var query = PFQuery(className: "Posts")
        query.orderByAscending("createdAt")
        query.findObjectsInBackgroundWithBlock { ( posts : [AnyObject]?, error : NSError?) -> Void in
            if error == nil {
                //불러오는데 성공
                for posts in posts! {
                    self.imageFiles.append(posts["imageFile"] as! PFFile)
                    self.imageText.append(posts["imageText"] as! String)
                    println(self.imageFiles.count)
                }

                /**reload the table **/
                self.homepageTableView.reloadData()
                println("reloaded")
            } else {
                println(error)
            }
        }
    }

    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return imageFiles.count
    }

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

        let cell : TableViewCell = tableView.dequeueReusableCellWithIdentifier("Cell") as! TableViewCell

        //text
        cell.previewCommentLabel.text = imageText[indexPath.row]

        //image
        imageFiles[indexPath.row].getDataInBackgroundWithBlock({ ( imageData : NSData?, error : NSError?) -> Void in

            if imageData != nil {
                //ㅇㅋ
                var image = UIImage(data: imageData!)
                cell.previewImage.image = image
            }else {
                println(error)
                //no
            }
        })

        return cell
    }
}

2 个答案:

答案 0 :(得分:7)

您的班级定义中有一个不需要的逗号(UITableViewDelegate之后)。

变化:

class Home: UIViewController, UITableViewDelegate,  {  //error here "expected identifier for type name"

为:

class Home: UIViewController, UITableViewDelegate  {  //error here "expected identifier for type name"

使用UITableViewController代替UIViewControllerUITableViewDelegate不应该有太大区别,因为您仍然需要实现相同的委托方法。

但是,您必须实现UITableViewDataSource才能填充表格视图。 UITableViewDelegate用于处理行(等)的选择而不是显示它们。

值得注意的是,tableView:numberOfRowsInSection:tableView(tableView:cellForRowAtIndexPath:UITableViewDataSource的一部分。

答案 1 :(得分:2)

那里有一个额外的逗号。

class Home: UIViewController, UITableViewDelegate,  {  //error here "expected identifier for type name"

应该是:

class Home: UIViewController, UITableViewDelegate  {  //error here "expected identifier for type name"