AnyObject没有名为generator的成员

时间:2015-09-21 10:35:26

标签: ios xcode swift parse-platform pfobject

我没有足够的声誉来发布图片

问题在于我做了以下

  

对象中的对象{例如:....

     

// [AnyObject]没有名为generator的成员 - 它显示了我   这个错误

     

}

在我在stackoverflow和其他一些网站上搜索后,我做了这个:

if objects?.count > 0 {

for object in objects! {

self.resultsUsernameArray.append(object.username) -> The error is "Cannot invoke append with an argument list of type (String?!)"

}

} else {

}

[AnyObject]没有名为generator ||的成员无法使用类型(String?!)

的参数列表调用append
import UIKit

var userName = ""

class UsersViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {

@IBOutlet weak var resultsTable: UITableView!

var resultsUsernameArray = [String]()
var resultsProfileNameArray = [String]()
var resultsImageFiles = [PFFile]()

override func viewDidLoad() {
    super.viewDidLoad()

    let theWidth = view.frame.size.width
    let theHeight = view.frame.size.height

    resultsTable.frame = CGRectMake(0, 0, theWidth, theHeight - 64)

    userName = PFUser.currentUser()!.username!

}



override func viewDidAppear(animated: Bool) {
    super.viewDidAppear(animated)

    let predicate = NSPredicate(format: "username !="+userName+"'")
    var query = PFQuery(className: "_User", predicate: predicate)

    var objects = query.findObjects()

    for object in objects { // [AnyObject] does not have a member named generator

        self.resultsUsernameArray.append(object.username)
        self.resultsProfileNameArray.append(object["profileName"] as! String)
        self.resultsImageFiles.append(object["photo"] as! PFFile)

        resultsTable.reloadData()

    }

}

 func tableView(tableView: UITableView, numberOfRowsInSection eg..... {
}

请帮帮我

1 个答案:

答案 0 :(得分:0)

query.findObjects()生成[AnyObject]?(即optional,可能是[AnyObject]。因此,如果query.findObjects()的结果是nil,则它不符合Generator协议。因此,首先检查您的结果是否为零,然后打开它。

关于self.resultsUsernameArray.append(object.username)的其他问题是,object现在是AnyObject,并且没有属性名称username。您首先需要将object转换为PFUser,然后使用username属性。

var objects = query.findObjects()
if objects != nil {  // or use objects.count > 0
    for object in objects! {
        if let user = object as? PFUser {
            resultsUsernameArray.append(user.username!)
            ...
        }
    }
}