그래서 최근 List/Details 앱 패턴의 기능을 확장했습니다. 세부 정보보기에서 스 와이프를 구현하여 상위 목록의 이전 또는 다음 항목으로 이동합니다.코코아에서 중요한 코드를 재사용하는 메커니즘은 무엇입니까?
내 솔루션을 사용하려면 세부 정보보기에 하나의 속성을 추가하고 목록보기에 3 개의 속성을 추가하고 각각에 여러 가지 새로운 기능을 구현하며 테이블보기의 DidSelect 메서드와 ViewDidLoad에서 일부 코드가 실행되도록해야합니다. .
나는이 코드를 다른 화면에 쉽게 추가 할 수 있도록 코코아 및 XCode 4에서 사용할 수있는 확실한 메커니즘 (스 니펫, 서브 클래 싱 및 카테고리)을 검토하고 있습니다. 애플 리케이션과 아무도 그것을 위해 적합 보입니다. 필자는 필요한 모든 변경 사항을 캡슐화하거나 다른 화면이나 프로젝트에 대한 코드 재사용을 단순화 할 수있는 메커니즘을 찾아 낼 수 없습니다.
여기서 특정한 짧은 오심 같습니다
니핏 : 오직 단일 코드 블록이므로 동일한 파일에서 여러 파일의 변경, 또는 여러 점을 요구 코드에 맞지 않는을 삽입 할 수있다.
카테고리 : 새 메서드를 추가하거나 기존 메서드를 다시 정의 할 수 있지만 새 속성을 추가 할 수는 없습니다.
서브 클래 싱 : 새로운 메소드와 속성을 추가 할 수 있지만 솔루션을 구현하기 위해 여러 클래스의 변경 사항을 처리하지 못합니다.
(스 니펫, 카테고리 및 서브 클래 싱을 사용하는) 하이브리드 방식을 사용할 수 있지만 이러한 코드 수정을 함께 패키징 할 수있는 메커니즘은 없습니다.
다른 언어 나 IDE를 사용하는 경우에도 다른 곳에서 사용 된 방법을 아는 것은 흥미로운 일입니다.
감사
범주는 수퍼 클래스에 적용되지 않습니다. 그러나 사용자 정의 하위 클래스를 이미 작성중인 경우 카테고리 작성이 다소 중복되는 것처럼 보일 수 있습니다. 이 시나리오를 묘사하려고합니다. –
메서드를 대체하기 위해 범주를 사용하지 마십시오. 일반적으로 이것은 정의되지 않은 동작입니다. 카테고리는 새로운 메소드를 추가 할 때만 사용해야합니다. –
죄송합니다. 귀하의 답변에 질문의 요지가 없습니다. 스 니펫, 카테고리 또는 서브 클래 싱으로 지원되지 않는 것으로 보이는 여러 클래스/파일에서 로직을 필요로하는 솔루션을 다시 사용할 수있는 메커니즘을 확인하려고합니다. –