2013-06-19 2 views
0

4 개의 날짜 속성 - syncDate, historicSyncDate 등이있는 코어 데이터 엔티티를 사용 중입니다.KVC를 사용하여 Core Data 객체의 속성을 설정하는 방법은 무엇입니까?

이러한 속성 중 하나의 NSString 이름을 사용하는 단일 메소드를 작성하는 방법은 있습니까? 그것을위한 적절한 날짜?

예 :

-(void)updateDate:(NSDate*) date forAttribute:(NSString*)attribute forService:(Service*)service 
{ 
    //based on attribute name, set service.syncDate or service.historicSyncDate, etc 
} 

답변

4

물론 다음 "NSManagedObject 클래스 참조"에서

[service setValue:date forKey:attribute]; 

는 :

setValue:forKey:
지정된 수신기의 지정된 속성을 설정합니다 값.

...
키가 일 관계를 식별하면, 하나가 있다면 이전에 관련된 개체 unrelating 상기 수신기 값에 의해 지정된 개체에 관한 것이다. 대다수의 관계를 식별하는 모음 개체와 키가 있으면 컬렉션에 포함 된 개체를 수신기와 관련시키고 이전에 관련 개체가 있었던 경우에는 관련이 없습니다.

이 방법은 수신기의 클래스 명시 적으로 키를 준수 접근 방법을 코딩 키 - 값을 제공하지 않는 관리 객체의 일반적인 사전 스토리지에 액세스 할 수 NSManagedObject에 의해 무시된다. Service 가정

3
당신은 할 수 있어야

...

-(void)updateDate:(NSDate*) date forAttribute:(NSString*)attribute forService:(Service*)service 
{ 
    [service setValue:date forKey:attribute]; 
} 

NSManagedObject

의 하위 클래스입니다