Подтвердить что ты не робот

Ошибка: "Тип выражения неоднозначен без дополнительного контекста"

Я новичок в кодировании Swift, поэтому, пожалуйста, извините меня, если эта ошибка является простым ответом!

Я продолжаю получать сообщение об ошибке, в котором говорится: "Тип выражения неоднозначен без дополнительного контекста".

    var findTimelineData: PFQuery = PFQuery(className: "Sweets")
    findTimelineData.findObjectsInBackgroundWithBlock {
        (objects:[AnyObject]?, error:NSError?) -> Void in

        if error == nil {
            for object:PFObject in objects! { // ----This is the error line---
                self.timelineData.addObject(object)
            }
        }
    }

Я понимаю, в чем проблема, я просто не уверен, как это исправить. Я видел другие вопросы об этом, но ни один из них не повторялся через массив AnyObject.

Спасибо!

4b9b3361

Ответ 1

Вы можете помочь компилятору узнать, что такое objects:

for object in objects as! [PFObject] {
    self.timelineData.addObject(object)
}

Ответ 2

if let pfObjects = objects as? [PFObject]
{
    for pfObject in pfObjects
    {
        self.timelineData.addObject(pfObject)
    }
}

... восклицательные знаки в коде Swift дают мне хеви-джибби.

Ответ 3

Если вы пишете понравившийся код:

for (i, view) in views { 
}

Вам нужно добавить enumerated:

for (i, view) in views.enumerated() {
}

И теперь он должен работать.