xcode: отсутствует метка аргумента 'at:' в вызове - PullRequest
0 голосов
/ 05 мая 2018

Я довольно новичок в Swift.

Кто нажал в приложение, чтобы удалить фотографию и комментарий, который будет удален.

Я получаю сообщение по адресу:

self.comments.remove (отправьте ["message"] как! String) self.imageFile.remove (опубликовать ["imageFile"] как! PFFile)

Отсутствует метка аргумента 'at:' в вызове

Функция удаления:

   @IBAction func remove(_ sender: Any) {

    let query = PFQuery(className: "Post")
    query.whereKey("username", equalTo: PFUser.current()?.username)
    query.findObjectsInBackground(block: { (object, error) in

        if let posts = object {
            for post in posts{
                print(posts)

                let objectIdVar = post["objectId"] as! String
                post.remove(forKey: "objectIdVar")
                self.comments.remove(post["message"] as! String)
                self.imageFile.remove(post["imageFile"] as! PFFile)
                self.tableView.reloadData()

}

            DispatchQueue.main.async {
                self.tableView.reloadData()
            }
        }
    })
}

enter image description here

Может кто-нибудь сказать, что я делаю неправильно и как я могу поступить правильно со мной?

Спасибо за вашу помощь

Ответы [ 2 ]

0 голосов
/ 05 мая 2018

посмотрите на сигнатуру функции remove(at:) здесь :

@discardableResult mutating func remove(at index: Int) -> Array.Element

Все, что вам нужно сделать, это добавить 'at:' в ваш звонок следующим образом:

self.comments.remove(at: /*Have an Int here*/)
self.imageFile.remove(at: /*Have an Int here*/)

Убедитесь, что комментарии и файл imageFile являются изменяемыми массивами для работы remove(at:).

0 голосов
/ 05 мая 2018

Не существует метода remove для массивов, который принимает в качестве параметра то, что вы хотите удалить, вы можете удалить элемент только по определенному индексу:

self.comments.remove(at: self.comments.index(of: post["message"] as! String)!)

Если вам нужна такая remove функция, рассмотрите вариант использования Set или напишите свое собственное расширение:

extension Array where Element : Equatable {
    @discardableResult
    mutating func remove(element: Element) -> Element? {
        guard let i = self.index(of: element) else { return nil }
        return self.remove(at: i)
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...