NSUserDefaults
не является базой данных, но вы уже знали это.
В любом случае, я бы сохранял массив напрямую, а также сохранял последний увиденный идентификатор новостей как отдельный параметр . Затем вам нужно только обработать новости с идентификатором, превышающим последний увиденный элемент. Когда вы загружаете новости, вам необходимо обновить как новости, так и последний увиденный идентификатор. Вы должны гарантировать, что идентификаторы находятся в порядке возрастания.
Другой подход, в зависимости от вашего конкретного использования новостей, состоит в том, чтобы сохранить два массива, один с новостями, а другой со списком идентификаторов новостей. Используйте второй массив, чтобы проверить, есть ли свежие новости.
Если вы не обрабатываете много новостей (в этом случае вам все равно следует использовать Core Data), вы оптимизируете то, что не требует оптимизации. Чтение, сортировка, обновление и сохранение небольшого массива в NSUserDefaults
довольно быстро.