【问题标题】:AnyObject does not have a member named generatorAnyObject 没有名为 generator 的成员
【发布时间】:2015-12-18 00:38:15
【问题描述】:

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

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

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

// [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] 没有名为生成器的成员 ||无法使用 (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..... {
}

请帮帮我

【问题讨论】:

    标签: ios xcode swift parse-platform pfobject


    【解决方案1】:

    query.findObjects() 产生一个[AnyObject]?(即一个optional,它可能是[AnyObject])。因此,如果query.findObjects() 的结果是nil,则它不符合Generator 协议。所以,首先检查你的结果是否为 nil,然后解包。

    关于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!)
                ...
            }
        }
    }
    

    【讨论】:

      【解决方案2】:

      试试这个

      if let username = object.username as String! {
        self.resultsUsernameArray.append(username)
      }
      

      【讨论】:

      • 不!不工作。它显示“无法使用类型的参数列表调用追加(字符串?!)”再次相同
      • 它显示了这个错误:Downcast from 'String?!' to 'String' 只解开选项;你的意思是用'!!'?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-01-09
      • 2014-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多