Swift, представление коллекции и раскадровка, обнуляются при использовании viewWithTag на другой метке
Я вижу какое-то странное поведение, с которым мне хотелось бы получить некоторую помощь. У меня есть ячейка представления коллекции, в которой изначально была одна метка с тегом 43.
Я устанавливаю значение метки, используя следующий код:
func collectionView(collectionView: UICollectionView!, cellForItemAtIndexPath indexPath: NSIndexPath!) -> UICollectionViewCell! {
let object = self.fetchedResultsController.objectAtIndexPath(indexPath) as NSManagedObject
let cell = collectionView.dequeueReusableCellWithReuseIdentifier("playerCell", forIndexPath: indexPath) as UICollectionViewCell
cell.backgroundColor = UIColor.orangeColor()
let mintmplabel : UILabel = cell.viewWithTag(43) as UILabel
mintmplabel.text = "fruktkaka"
//(cell.viewWithTag(43) as UILabel).text = object.valueForKey("playerName").description
//let mintmplabelb : UILabel = cell.viewWithTag(41) as UILabel
//mintmplabelb.text = "megaman"
//(cell.viewWithTag(41) as UILabel).text = object.valueForKey("playerName").description
return cell
}
Работает как положено! Однако позже я попытался добавить еще одну метку в ячейку представления коллекции и присвоить ей метку 41. Когда я раскомментирую строки
//let mintmplabelb : UILabel = cell.viewWithTag(41) as UILabel
//mintmplabelb.text = "megaman"
Я получаю следующую ошибку (в строке "let"):
фатальная ошибка: неожиданно найден ноль при развертывании необязательного значения (lldb)
Текущее сообщение отображается в исходном коде: "Поток 1: EXC_BAD_INSTRUCTION (код =EXC_I386_INVOP, субкод =0x0)"
Я перепробовал много разных подходов, но просто не могу заставить его работать. Я также попытался удалить обе метки и повторно добавить их (с одинаковыми метками). Это разрывает ярлык с тегами 43 и 41!
Либо я что-то упустил, как использовать теги, либо наткнулся на какую-то ошибку.
Я использую Xcode 6 бета 5.
Любая помощь будет принята с благодарностью, я не знаю, где искать дополнительную информацию.
Спасибо / Мартин
1 ответ
Итак, кажется, что задание вопроса здесь заставляет меня найти ответ.. Я не знаю, почему это сработало, но это сработало.
Я выбрал метку, которая не работала, и в раскадровке "Инспектор атрибутов" флажок с надписью "Установлено" был снят, а под флажком с надписью "Установлен wC hR установлен". Сняв флажок "wC hR Установлено" и отметив флажок "Установлено", он снова начал работать.
Я понятия не имею, что это делает, обновит ответ, если я узнаю.