Единственное функциональное различие, с которым я столкнулся, заключается в том, что я могу отменить запланированное сообщение с помощью performSelector:withObject:afterDelay:
. Я не знаю, как отменить блок, отправленный на dispatch_after
. (Пожалуйста, дайте мне знать, если есть способ сделать это, о котором я не знаю).
Я хотел бы узнать больше о:
- функциональные компромиссы (что еще можно сделать с одним интерфейсом, но не с другим?)
- Компрессия производительности (эффективна ли одна реализация? В каких случаях?)
- стилистические компромиссы (должен ли я использовать один интерфейс для определенных задач, чтобы лучше следовать общим стилям или соглашениям?)