Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
UIAppearance запоминает все NSInvocation, произошедшие с appearance-объектом, и потом воспроизводит их на реальных инстансах. Поэтому всё должно работать с вообще любыми вызовами любых селекторов. Но отсюда побочный эффект: если к примеру сделать два раза "setColor:" с разными цветами, то и на реальном инстансе произойдёт оба этих вызова. Поэтому, например, переключение разноцветных тем в приложении сделать не получится: при переключениях тем эти NSInvocation будут накапливаться и накапливаться. В принципе, всё это можно понять просто распечатав appearance-proxy объект в отладчике (или распечатав его _ivarDescription, уже не вспомнить)
UIAppearance оказался не так прост