AnyObject 没有名为生成器的成员

问题描述 投票:0回答:2

问题是当我执行以下操作时

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

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

}

在 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..... {
}
ios xcode swift parse-platform pfobject
2个回答
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!)
            ...
        }
    }
}

0
投票

试试这个

if let username = object.username as String! {
  self.resultsUsernameArray.append(username)
}
© www.soinside.com 2019 - 2024. All rights reserved.