Вы получите предупреждение об устаревании только в том случае, если вы используете API, который устарел на уровне цели развертывания или ранее него.
NSKeyedUnarchiver unarchiveObjectWithData
устарело с macOS 10.14.Вы получите предупреждение об устаревании только в том случае, если целью развертывания является macOS 10.14 или более поздней версии.Но опубликованный вами код подразумевает, что вы хотите поддерживать macOS 10.12 или более раннюю версию.
NSKeyedUnarchiver unarchivedObjectOfClass:fromData:error:
был добавлен в macOS 10.13.
Если вы действительно хотите использовать только цель развертывания macOS 10.13 или более поздней версии,вам не нужны if (@available(macOS 10.13, *))
или else
.Просто используйте новый API и готово.
Код в вашем вопросе (без прагм) следует использовать только в том случае, если вы хотите поддерживать macOS 10.12 или более раннюю версию.Затем необходимо установить для цели развертывания MacOS 10.12 или более раннюю версию.И в этом случае вам не нужны прагмы, и вы не получите никаких предупреждений об устаревании.