Spec-Zone .ru
спецификации, руководства, описания, API

Библиотека Разработчика iOS

Разработчик

Ссылка платформы UIKit ссылка на протокол UIDataSourceModelAssociation

Опции
Развертывание Target:

На этой странице
Язык:

UIDataSourceModelAssociation

Наследование


Не применимый

Соответствует


Не применимый

Оператор импорта


Swift

import UIKit

Objective C

@import UIKit;

Доступность


Доступный в iOS 6.0 и позже.

UIDataSourceModelAssociation протокол определяет интерфейс для обеспечения персистентных ссылок на объекты данных в Вашем приложении. Ваши объекты источника данных могут принять этот протокол для помощи соответствующей таблице или представлению набора во время процесса восстановления состояния. Те классы используют методы этого протокола, чтобы гарантировать, что те же объекты данных (и не только те же индексы строки) прокручены в представление и выбраны.

Прежде чем можно будет реализовать этот протокол, приложение должно быть в состоянии идентифицировать объекты данных последовательно между запусками приложения. Это требует способности взять некоторый маркер идентификации объекта и преобразовать тот маркер в строку, которая может тогда быть сохранена с остальной частью состояния приложения. Например, Базовое приложение Данных могло преобразовать ID управляемого объекта в URI, который оно могло тогда преобразовать в строку.

В настоящее время, только UITableView и UICollectionView классы поддерживают этот протокол. Вы реализовали бы этот протокол в любых объектах, которые Вы используете в качестве источника данных для тех классов. Если Вы не принимаете протокол в своем источнике данных, представления не пытаются восстановить выбранные и видимые строки.

  • Возвращает строку, однозначно определяющую данные в указанном расположении в представлении. (требуемый)

    Объявление

    Swift

    func modelIdentifierForElementAtIndexPath(_ idx: NSIndexPath, inView view: UIView) -> String

    Objective C

    - (NSString *)modelIdentifierForElementAtIndexPath:(NSIndexPath *)idx inView:(UIView *)view

    Параметры

    idx

    Индексный путь к требуемому объекту данных.

    view

    Представление, содержащее объект данных.

    Возвращаемое значение

    Строка, однозначно определяющая объект данных.

    Обсуждение

    Используйте предоставленную информацию для определения местоположения требуемого объекта данных. От того объекта извлеките строку, которая может использоваться позже для идентификации той же части данных снова. Строка, которую Вы возвращаете, не должна основываться на переходной информации, такой как указатель на текущий объект в памяти; это должно вместо этого быть связано к базовым данным. Фактически, если два различных объекта в памяти представляют ту же часть данных в Вашем приложении, они должны оба возвратить ту же строку идентификатора модели.

    Оператор импорта

    Objective C

    @import UIKit;

    Swift

    import UIKit

    Доступность

    Доступный в iOS 6.0 и позже.

  • Возвращает текущий индекс объекта данных с указанным идентификатором. (требуемый)

    Объявление

    Swift

    func indexPathForElementWithModelIdentifier(_ identifier: String, inView view: 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 и позже.