Гораздо более общим решением является использование NSPropertyListSerialization, как было предложено Владимиром в его ответе, который он удалил.Он как сериализует (создает данные plist из объекта), так и десериализует (заново создает дерево объектов из данных plist).
Он всегда может анализировать любой допустимый plist, двоичный или другой, независимо от типакорневой элемент;Затем вы можете проверить объект, который он возвращает, чтобы убедиться, что он того типа, который вы ожидаете.