2011-05-02 3 views
0

Xcode는 NSMO 엔터티의 클래스 구현을 자동으로 생성합니다.Bindings에서 액세스 할 수있는 재사용 가능한 방식으로 NSManagedObject 클래스의 비헤이비어를 수정하는 방법은 무엇입니까?

하지만 자주 맞춤 설정해야합니다. 이 파일들을 커스터마이징 한 것을 잊어 버린 경우, Xcode는 기꺼이 "삭제"(덮어 쓰기)하고 모든 코드를 제거합니다. 를 추가, 클래스

  • 원래 클래스를 확장하는 카테고리를 사용하여 새로운 클래스를 생성 생성 NSManagedObject의 애플의 모델 뷰
  • 에서 만들기

    1. :

      그래서 ... 고전적인 트릭했다 수정 된 동작

    2. 기본 NSMO 헤더 대신 사용자 지정 범주 머리글 가져 오기 "새"동작

    위의 코드는 카테고리에 사용자 정의 코드를 넣을 때 유용합니다. Xcode를 사용하여 파일을 자동 생성하면 아무 것도 잃지 않습니다.

    하지만 지금은 Bindings/Mac OS 코드를 사용하고 Bindings는 훌륭하지만 Binding을 가져 오는 방법을 알지 못합니다 (카테고리 및 수정 된 메소드/사용자 정의 동작)?

    NSMO 인스턴스를 보유하고있는 ArrayController (매우 일반적)가 있다면 일반적으로 "Entity Name"(예 : "MyCoreDataEntity")을 말하고 NSMO에 해당 클래스 이름을 요청합니다. 하지만 결코 카테고리를로드하지 않으므로 클래스의 사용자 정의 된 버전을 선택하지 않습니다.

    어떻게이 문제를 해결할 수 있습니까? 클래스의 클래스 버전에서 어떻게로드합니까?

    또는 : 카테고리를 사용하지 않고 어떻게 사용자 정의 코드를 작성하고 Xcode가 코드를 삭제하면 모든 코드를 삭제할 수 있습니까?

  • 답변

    0

    나는 코코아 터치를 사용할 수 있으므로 바인딩을 사용할 수 없다는 것을 인정해야합니다. 따라서 제 제안이 귀하의 경우에 해당되는지 정말 모르겠습니다.

    그러나 이것은 도움이 될까요?

    카테고리로 "정교한"것이 아니라 핵심 데이터 추가를위한 카테고리의 대안이 있습니다.

    하나는 #INCLUDE 문을 사용할 수 있습니다 :

    는 두 가지 대안이있다 : 새로운 클래스 파일을 생성

    1. , 삭제 "header.h가"합니다 (header.h가 삭제)를 포함, 넣어 거기에 여분의 코드. 그것은 컴파일되지만 두 가지 경고를 표시합니다 : (이해할 수 있음) [WARN] 경고 : 아키텍처 armv6의 텍스트 유형 '$ (PROJECT_DIR)/Classes /../include_dataStuff'파일을 처리하는 규칙이 없습니다. [WARN] 경고 : 규칙 없음 프로세스 파일 '$ (PROJECT_DIR)/Classes /../ contained_dataStuff'아키텍처 armv7에 대한 텍스트 유형

    2. 새 "빈"파일을 만들고 거기에 여분의 코드를 넣습니다. 이 경고를 생성하지 않습니다.

    1과 2 사이의 차이는 코드 포맷 제 alternatve 유지하면서 제 모든 코드 형식 (2 경고를 수락 할 필요) 손실 및 일반 텍스트처럼 취급된다 (그러나 거기

    나는 첫번째를 선호한다. 물론 생성 된 코드 파일에 대한 유일한 수정은 #include 문입니다.

    +0

    그래서 ... 코드를 다시 생성 할 때마다 수동으로 수정하고 # 사용자 정의 코드가 포함 된 파일을 포함해야합니다. – Adam

    +0

    예, 지금까지 그렇게 해왔습니다. 그러나 나는 컴파일 작업을 시작하기 전에 사전 조치 나 다른 방법으로 나 자신의 작은 사전 처리를 추가하려고한다. 이 방법을 사용하면 많은 자동화 작업을 추가 할 수 있기 때문에 많은 작업을 절약 할 수 있습니다. 혹시 이것이 xCode4의 사전 조치를 사용하여 수행 할 수 있는지 알고 있습니까? – user387184

    0

    가장 쉬운 해결책은 NSArrayController를 하위 클래스로 분류하고 카테고리를 가져온 다음 IB에서 하위 클래스를 사용하는 것입니다. 그렇게하면 바인딩이 자동으로 카테고리를 알아야합니다.

    MoGenerator는 아무 것도 덮어 쓰지 않고도 사용자 지정 클래스를 생성하는 데 익숙했습니다. 나는 원래의 저자들이 그렇게 할 시간이없는 것 같기 때문에, Xcode 4.x를 업데이트하거나 그것을 업데이트하는 것을 고심하고있다.

    +0

    그건 교활하고 좋은 생각이야. Re : Xcode4 - 제 생각에 Apple은 "결국"괜찮은 CoreData 지원을 추가 할 것입니다 ... 그들은 Xcode3의 핵심 기능 중 일부를 제거했으며 대체품을 제공하지 않아 "더 나은"계획이 있다는 것을 알았습니다. 그래도 될 수있어 ... – Adam

    관련 문제