Вы можете управлять этими вещами, используя pageIndex
, установить глобальную переменную var pageIndex:Int = 1
и нажать больше, чтобы увеличить pageIndex
на 1 и перезагрузить UITableview
. Я написал эту логику для секции 0, изначально загружающей 10 записей,
Я добавил еще одну строку на +1 в этом утверждении return (10 * pageIndex) + 1
, потому что +1 для кнопки «загрузить больше».
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
if section == 0 {
return (10 * pageIndex) + 1
}else {
return 10
}
}
Если Вы не хотите опрашивать использование файла stat
, и не возражайте быть определенными для Linux, затем можно использовать inotify API. Ваше ядро должно быть 2.6.13 или более новое и glibc 2.4 или более новый (которым они будут то, если Вы будете нацелены на что-нибудь с прошлых 2 или 3 лет). API в основном дает Вам дескриптор файла, что Вы можете poll
или select
, и read
получить информацию об измененных файлах. Если Ваше приложение будет интерактивным, как редактор, то оно будет обычно иметь своего рода цикл событий, который звонит select
или poll
, и может наблюдать Ваш inotify дескриптор файла за событиями.
Используя inotify обычно предпочтительно stat
, потому что Вы сразу получаете уведомления, и Вы не напрасно тратите время и диск опрос ввода-вывода, когда файл не изменяется. Оборотная сторона, это не могло бы работать по NFS или другим сетевым файловым системам, и это не портативно.
Эта страница в IBM Developerworks дает некоторый пример C код, и страница справочника является категорической ссылкой.
Текстовые редакторы, которые я видел в Windows и Linux, сделали его тот же путь: они не проверяют, чтобы видеть, изменился ли файл на самом деле, они просто рассмотрение статистики файла mtime.