The original KVO use runtime to hook UITextView’s dealloc method and
release. This method maybe cause a problem: When this category was
compile into a dynamic framework, and was used in other project which
also reference this category. In that case, the runtime hook two times,
and result is KVO not removed. This case can be reproduce in demo project: compile “UITextView+Placeholder.m” file in demo project and framework both.
The original KVO use runtime to hook UITextView’s dealloc method and release. This method maybe cause a problem: When this category was compile into a dynamic framework, and was used in other project which also reference this category. In that case, the runtime hook two times, and result is KVO not removed. This case can be reproduce in demo project: compile “UITextView+Placeholder.m” file in demo project and framework both.