Objective-C 카테고리는 매우 유용하지만이 기능에는 몇 가지 문제가 있습니다. 이것들은 기본적으로 내가 아는 두 가지 형태로 나온다 :Objective-C 카테고리는 얼마나 안전합니까?
- 동일한 편의 방법을 추가하려는 두 가지 카테고리. 이 경우 어느 것이 사용되는지는 정의되지 않았다. 너무 많은 메소드를 추가하거나 특히 일반적인 메소드 이름을 사용하지 않도록 조심한다면 첫 번째 문제는 거의 문제가 될 수 없습니다.
- 카테고리와 충돌하는 작성자가 클래스에 추가하는 새로운 메소드입니다. 이 경우 카테고리가 클래스 메소드보다 우선합니다. 수업이 제 통제하에 있지 않을 수도 있으므로, 저는이 문제에 대해 더 걱정하고 있습니다.
백 포트 변경 사항은 상당히 안전해야하지만 인터페이스를 구현하거나 편리한 방법을 추가하는 것이 더 위험한 것처럼 보입니다. 나는 코코아가 편리한 메소드를 위해 그것을 사용하는 것 같다는 것을 알지만, 다시 한번 기본 클래스가 제어 할 수있다. 아마도 클래스를 사용하여 종속성을 줄이는 것일 수도 있습니다. 따라서 String 클래스는 Cocoa에서 작업하기위한 편리한 메소드를 가질 수 있지만 Cocoa를 사용하지 않으면 가져 오지 않습니다.
카테고리/안전 유지를위한 지침은 무엇입니까?
대부분의 문제가 해결된다고 생각합니다. – Casebash