2012-10-02 2 views
3

최근에 외부 개발자로부터 CoreData 프로젝트를 상속 받았습니다. 내가 자동으로 생성 된 NSManagedObject 하위 클래스를 모두 찾을 것으로 예상되는 곳에서 Mogenerator에 의해 생성 된 클래스 (경험이없는 도구)가 있습니다.CoreData : Mogenerator vs. Categories

이 도구를 사용하는 목적은 모델이 변경되고 클래스가 재생성 될 때 CoreData 엔티티에 상응하는 클래스에 사용자 정의 코드를 추가 할 수 있도록하는 것입니다. 하지만 어쨌든 카테고리를 사용하여이 작업을 수행 할 수 있습니다.

저는 현재 범주 이상으로 Mogenerator를 사용하는 것이 실질적으로 이점이없는 것으로 나타났습니다.

Mogenerator와 카테고리를 비교할 때 장점/단점은 무엇입니까? Mogenerator는 추가적인 목적을 제공합니까? 자신의 '사이트'http://rentzsch.github.com/mogenerator/에서

답변

8

클래스를 사용하는 장점은 범주를 서브 클래 싱하고 재정 의하여 기능을 확장 할 수 있다는 것입니다.

예를 들어, 모델에 하위 항목이있는 경우 공통 마스터 클래스의 기능을 상속 할 수 있습니다. 서브 클래스는 원하는 메소드를 오버라이드하여 특정 동작을 정의 할 수 있습니다. 반면에 범주에 정의 된 메서드를 재정의 할 수도 있지만 권장하지는 않습니다. 이것은 범주가 모든 하위 클래스에서 반복되어야하므로 구현되는 논리를 의미합니다.

관리되는 개체의 많은 코드는 상용구입니다. 따라서 자동으로 mogenerator를 사용하는 것이 좋습니다.

0

: 기계 하나

mogenerator이 코어 데이터 정의에 대한 클래스

엑스 코드와는 달리

을 목표 - C 코드를 생성은 mogenerator 엔티티 당 두 개의 클래스를 관리 , 사람을위한 하나

기계 클래스는 항상 인간 모델의 데이터 모델 과 일치하도록 덮어 쓸 수 있습니다. 자연스럽게 보존 됨

그래서 기본적으로 범주와 관련이 없습니다. Mogenerator (Model Object Generator)는 넘겨받은 프로젝트에서 결과를 본 코드를 생성합니다.