2014-04-09 1 views
0

CoreData 기반 앱이 있습니다. Core Data에는 ZSProductionCD라는 NSManagedObject 하위 클래스를 만드는 ZSProduction이라는 엔티티가 있습니다. 이것은 생성 된 .h 파일입니다.iOS - X 유형의 객체에서 속성을 찾을 수 없습니다. - 상속 된 속성

#import <Foundation/Foundation.h> 
#import <CoreData/CoreData.h> 

@interface ZSProductionCD : NSManagedObject 

@property (nonatomic, retain) NSNumber * appVersion; 
@property (nonatomic, retain) id highlightColour; 
@property (nonatomic, retain) NSDate * lastUpdated; 
@property (nonatomic, retain) NSString * notes; 
@property (nonatomic, retain) NSString * owner; 
@property (nonatomic, retain) NSString * productionID; 
@property (nonatomic, retain) NSString * productionName; 
@property (nonatomic, retain) NSNumber * scenesLocked; 
@property (nonatomic, retain) NSNumber * shotNumberingStyle; 
@property (nonatomic, retain) NSNumber * sortIndex; 
@property (nonatomic, retain) NSNumber * status; 
@property (nonatomic, retain) NSString * tagline; 

@end 

그때라는 클래스 ZSProduction으로이 서브 클래스 : 서브 클래스에 대한

#import <Foundation/Foundation.h> 
#import "ZSProductionCD.h" 

@interface ZSProduction : ZSProductionCD 
@end 

이유는 내가 방법 & 가능성이 다른 속성의 무리를 추가 할 것입니다 것입니다. 이 방법으로 엔티티를 변경하면 ZSProduction으로 수행 한 작업에 영향을주지 않고 새로운 ZSProductionCD 클래스를 작성할 수 있습니다.

이제 문제가 있습니다. 뷰 컨트롤러에서 ZSProduction을 사용하고 있습니다. 하지만 속성 중 하나만 가지고 문제가 있습니다. 방법에, 그리고 나중에

#import "ZSProduction.h" 

@interface [...] 
@property (strong, nonatomic) ZSProduction *item; 
@end 

그리고 :

self.productionNameField.text = self.item.productionName; 
self.shotNumStyleControl.selectedSegmentIndex = [self.item.shotNumberingStyle intValue]; 

을 그리고 잘못 곳이다이보기 컨트롤러에서

, 나는 속성을 선언합니다. 엑스 코드는 불평 :

재산권 'shotNumberingStyle는'이 작품을 잘 productionName 속성에 대해 불평하지 않는 'ZSProduction *'

주 유형의 객체를 찾을 수 없습니다. 같은 뷰 컨트롤러에서

, 내가 사용하는 경우 :
self.item.shotNumberingStyle = 0; 

그럼 저도 같은 오류가 발생합니다. 하지만 내가 사용하는 경우 :

[self.item setValue:0 forKey:@"shotNumberingStyle"]; 

그럼 잘 작동합니다. 그럼에도 사용할 수 있습니다 :

self.item.highlightColour = [UIColor whiteColor]; 

전혀 문제가 없습니다. 뭐라 구요?

모든 단서는 인정 될 것입니다.

답변

0

글쎄, 나는 문제를 분류했지만 다른 누군가가 비슷한 경우에 대비해 여기를 남겨 둘 것이라고 생각했다.

나는 ZSProduction 클래스의 이전 버전에서 만들었던 세 가지 속성, 즉 액세스가 가능하다는 사실을 깨달았습니다. 핵심 데이터를 사용하지 않은 속성 (현재 리팩토링 중입니다. 보관소에서 CD로 이동).

디스크의 프로젝트 하위 디렉토리에는 오래된 ZSProduction.h 및 ZSProduction.m 파일이 있지만 XCode에는 없습니다. XCode가 이것들을보고있는 것 같습니다. 이전 파일은 프로젝트의 루트 디렉토리에 있었고 최신 파일은 하위 디렉토리 ('모델')에있었습니다. 이전 파일을 삭제하고 XCode를 다시 시작했습니다 & 모두 이제 막 볼 수 있습니다.

관련 문제