Я пытаюсь понять логику перетаскиваемых элементов просмотра коллекции. Однако он работает с фиктивными данными, но я не мог понять, как заставить его работать с реальными данными.Назначение переменной класса переменной «lazy var»
Я не мог знать, что название, чтобы дать на этот вопрос, пожалуйста, не стесняйтесь редактировать/улучшить его
Если я использую этот подход с соской элементов массива и вызвать функцию
class TableViewController: UITableViewController, KDRearrangeableCollectionViewDelegate, UICollectionViewDataSource {
lazy var data : [[String]] = {
var array = [[String]]()
let images = [
"1.jpg", "2.jpg", "3.jpg"
]
if array.count == 0 {
var index = 0
var section = 0
for image in images {
if array.count <= section {
array.append([String]())
}
array[section].append(image)
index += 1
}
}
return array
}()
func moveDataItem(fromIndexPath : NSIndexPath, toIndexPath: NSIndexPath) {
let name = self.data[fromIndexPath.section][fromIndexPath.item]
self.data[fromIndexPath.section].removeAtIndex(fromIndexPath.item)
self.data[toIndexPath.section].insert(name, atIndex: toIndexPath.item)
print(self.data)
}
На этом этапе print(self.data)
печатает новый порядок элементов массива после перетаскивания/перестановки.
Пример print(self.data
) журнал: [["2.jpg", "1.jpg", "3.jpg"]]
Теперь у меня есть реальные данные, как и добавляемые пункты после извлечения из базы данных .. член
var realImages = [NSURL]()
// I tried assigning `images` array inside `lazy var data` but received error:
lazy var data : [[String]] = {
var array = [[String]]()
let images = realImages // error here
...
Instance realImages нельзя использовать для типа TableViewController
Каков правильный способ использования моего реального массива в этом случае?
(This explanation и its Git repo было большим для ее понимания). Я еще более упростил его с помощью фиктивных данных, но я не мог понять логику «ленивого вар» и регулярного «var» и как заставить его работать в этом сценарии.
Возможный дубликат [ «член Instance не может быть использован по типу» ошибки в ленивой собственности] (Http://stackoverflow.com/questions/35990637/i-want-put-an-array-to-an-array-but-why-do-i-get-this-error) – Hamish