UIDataSourceModelAssociation
Наследование
Не применимый
Соответствует
Не применимый
Оператор импорта
Swift
import UIKit
Objective C
@import UIKit;
Доступность
Доступный в iOS 6.0 и позже.
UIDataSourceModelAssociation
протокол определяет интерфейс для обеспечения персистентных ссылок на объекты данных в Вашем приложении. Ваши объекты источника данных могут принять этот протокол для помощи соответствующей таблице или представлению набора во время процесса восстановления состояния. Те классы используют методы этого протокола, чтобы гарантировать, что те же объекты данных (и не только те же индексы строки) прокручены в представление и выбраны.
Прежде чем можно будет реализовать этот протокол, приложение должно быть в состоянии идентифицировать объекты данных последовательно между запусками приложения. Это требует способности взять некоторый маркер идентификации объекта и преобразовать тот маркер в строку, которая может тогда быть сохранена с остальной частью состояния приложения. Например, Базовое приложение Данных могло преобразовать ID управляемого объекта в URI, который оно могло тогда преобразовать в строку.
В настоящее время, только UITableView
и UICollectionView
классы поддерживают этот протокол. Вы реализовали бы этот протокол в любых объектах, которые Вы используете в качестве источника данных для тех классов. Если Вы не принимаете протокол в своем источнике данных, представления не пытаются восстановить выбранные и видимые строки.
-
modelIdentifierForElementAtIndexPath (_: inView:) - modelIdentifierForElementAtIndexPath:inView:
ТребуемыйВозвращает строку, однозначно определяющую данные в указанном расположении в представлении. (требуемый)
Объявление
Swift
func modelIdentifierForElementAtIndexPath(_
idx
: NSIndexPath, inViewview
: UIView) -> StringObjective C
- (NSString *)modelIdentifierForElementAtIndexPath:(NSIndexPath *)
idx
inView:(UIView *)view
Параметры
idx
Индексный путь к требуемому объекту данных.
view
Представление, содержащее объект данных.
Возвращаемое значение
Строка, однозначно определяющая объект данных.
Обсуждение
Используйте предоставленную информацию для определения местоположения требуемого объекта данных. От того объекта извлеките строку, которая может использоваться позже для идентификации той же части данных снова. Строка, которую Вы возвращаете, не должна основываться на переходной информации, такой как указатель на текущий объект в памяти; это должно вместо этого быть связано к базовым данным. Фактически, если два различных объекта в памяти представляют ту же часть данных в Вашем приложении, они должны оба возвратить ту же строку идентификатора модели.
Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 6.0 и позже.
-
indexPathForElementWithModelIdentifier (_: inView:) - indexPathForElementWithModelIdentifier:inView:
ТребуемыйВозвращает текущий индекс объекта данных с указанным идентификатором. (требуемый)
Объявление
Swift
func indexPathForElementWithModelIdentifier(_
identifier
: String, inViewview
: UIView) -> NSIndexPath?Objective C
- (NSIndexPath *)indexPathForElementWithModelIdentifier:(NSString *)
identifier
inView:(UIView *)view
Параметры
identifier
Идентификатор для требуемого объекта данных. Используйте этот идентификатор для определения местоположения соответствующего объекта в объекте источника данных. Это - та же строка что Ваше приложение
modelIdentifierForElementAtIndexPath:inView:
метод возвратился при кодировании данных первоначально.view
Представление, в которое вставляется объект.
Возвращаемое значение
Текущий индекс объекта, данные которого соответствуют значение в
identifier
, илиnil
если не был найден объект.Обсуждение
Во время восстановления состояния,
view
может вызвать этот метод для определения местоположения объектов, которые не являются, где они, как ожидали, будут. Если число объектов в таблице не является тем же как во время предыдущего цикла запуска, это может произойти. Представление использует информацию, чтобы гарантировать, что строки с теми же данными еще раз выбраны или прокручены в представление, даже если те строки находятся в различном расположении теперь.Оператор импорта
Objective C
@import UIKit;
Swift
import UIKit
Доступность
Доступный в iOS 6.0 и позже.