Is there any way to detect which setting it is that changed?
После проверки документа Apple, он говорит:
Это уведомление публикуется в ветке, которая изменяет пользовательские настройки по умолчанию. Объект уведомления является объектом NSUserDefaults. Уведомление не содержит словаря userInfo.
Уведомление не предоставляет вам словарь userInfo, поэтому я думаю, что вы не можете знать, какие именно настройки были изменены с помощьюэто уведомление.
is there a way to subscribe to a change to only one specific setting?
Вы можете взглянуть на решения в этой теме , я не пробовал его на моей стороне, но он может дать вам некоторые идеи. Я думаю, что сравнить настройки до и после получения уведомления будет делать это.