我没有足够的声誉来发布图片
问题在于我做了以下
对象中的对象{例如:....
// [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?!)
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..... {
}
请帮帮我
答案 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!)
...
}
}
}