использование неразрешенной ошибки идентификатора

Я реализовал функцию голосования в своем приложении, чтобы пользователь мог vote опубликовать сообщение. Я использую collection view и поставил label и button. При нажатии кнопки голос подсчитывается. У меня есть этот код в файле cell view controller. Это мой контроллер представления коллекции, и хотя я сказал, что голосует в ячейке, у меня есть ошибка, говорящая

использование голосов с неразрешенными идентификаторами

Застрял на много часов. Любая помощь приветствуется. Спасибо. В cellForItemAtIndexPathу меня есть

func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {


    let cell = collectionView.dequeueReusableCellWithReuseIdentifier("newview", forIndexPath: indexPath) as! NewCollectionViewCell
    //cell.backgroundColor = UIColor.blueColor()


    // Display the country name
    if let value = posts[indexPath.row]["imageText"] as? String {
        cell.postsLabel.text = value
        println("it should be there")

    }

    // Display "initial" flag image
    var initialThumbnail = UIImage(named: "question")
    cell.postsImageView.image = initialThumbnail


    // Fetch final flag image - if it exists
    if let value = posts[indexPath.row]["imageFile"] as? PFFile {

        cell.postsImageView.file = value
        cell.postsImageView.loadInBackground({ (image: UIImage?, error: NSError?) -> Void in

            if error != nil {
            }                
        })

        //  let finalImage = tops[indexPath.row]["tops"] as? PFFile

    }

Я получаю ошибку от этого кода.

if let value = posts[indexPath.row]["votes"] as? Int {
    if votes == nil {
        votes = 0}
        cell.votesLabel?.text = "\(votes!) votes"

 }

return cell
}

Также в моем представлении ячейки у меня также есть

@IBAction func vote(sender: AnyObject) {

    if (parseObject != nil) {
        if var votes:Int? = parseObject!.objectForKey("votes") as? Int {
            votes!++

            parseObject!.setObject(votes!, forKey: "votes")
            parseObject!.saveInBackgroundWithTarget(nil, selector: nil)               
            votesLabel?.text = "\(votes!) votes"
    }
    }}}

person Satsuki    schedule 29.07.2015    source источник
comment
вы присваиваете развернутое значение parseObject!.objectForKey("votes") переменной с именем value. Я думаю, что это должно быть votes.   -  person ozgur    schedule 29.07.2015
comment
Вы имеете в виду if var votes:Int? = parseObject!.objectForKey("votes") as? Int   -  person Satsuki    schedule 29.07.2015
comment
Да должно быть так   -  person ozgur    schedule 29.07.2015


Ответы (1)


Попробуйте заменить следующие строки кода

if let value = posts[indexPath.row]["votes"] as? Int {
if votes == nil {
    votes = 0}
}

с

if let votes = posts[indexPath.row]["votes"] as? Int {
if votes == nil {
    votes = 0}
}
person iRiziya    schedule 29.07.2015
comment
о, извините, я попробовал это, и выскакивает ошибка о том, что двоичный оператор не может быть применен к операндам типа Int и nil. Также выдает ошибку на кусок кода `cell.votesLabel?.text = (votes!) voices`, говорящий об этом операнде исправления сообщения! должен иметь необязательный тип, тип int - person Satsuki; 29.07.2015
comment
Попробуйте сначала if let votes = posts[indexPath.row]["votes"] as? Int { println(votes) } - person iRiziya; 29.07.2015
comment
Давайте продолжим это обсуждение в чате. - person Satsuki; 29.07.2015