2013-03-04 1 views
5

프로젝트를 빌드 할 때 Xcode에서 빌드 의미 오류가 발생합니다. 3 NSOperation 클래스를 인터넷에서 정보를 다운로드하여 처리 한 다음 부모보기 컨트롤러 인 ViewController의 인스턴스로 보냅니다. 여기ViewController 유형 이름이 한 클래스에서 인식되지 않지만 다른 클래스에 있습니까?

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

@interface ImageGetter : NSOperation 

@property (nonatomic) int sid; 
@property (nonatomic, retain) ViewController* pvc; 

@end 

작업 하지 않은 하나의 코드는 다음과 같습니다 : 다음은 노동 계급에 대한 코드는

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

@interface CurrentGetter : NSOperation 

@property (nonatomic) int sid; 
@property (nonatomic, retain) ViewController* pvc; 

@end 

오류 :

ERROR: Unknown type name 'ViewController'; did you mean 'UIViewController'? 

하는 이유는 무엇입니까 이 오류? 두 파일에 ViewController.h를 가져오고 하나만 작동합니다.

ViewController.h :

#import <UIKit/UIKit.h> 
#import <AVFoundation/AVFoundation.h> 
#import <MediaPlayer/MediaPlayer.h> 

#import "DataGetter.h" 
#import "CurrentGetter.h" 
#import "AppDelegate.h" 

@interface ViewController : UIViewController <UITabBarDelegate> 
{ 
    NSTimer* tmr; 
} 

@property (nonatomic) float max; 
@property (nonatomic, retain) NSDictionary* plist; 
@property (nonatomic, retain) NSArray* processingobj; 

@property (nonatomic, retain) AVAudioPlayer* intro; 
@property (nonatomic, retain) AVAudioPlayer* woop; 

@property (nonatomic) float dataDone; 
@property (nonatomic) BOOL introDone; 
@property (nonatomic) BOOL currentDone; 

@property (nonatomic) int newSid; 
@property (nonatomic) int newPart; 

@property (nonatomic, retain) NSMutableArray* views; 

@property (nonatomic) int audioTab; 
@property (nonatomic) int currentSid; 
@property (nonatomic) BOOL isPlaying; 

@property (nonatomic, retain) UIScrollView* partTab; 
@property (nonatomic, retain) NSMutableArray* nowPlayingObj; 
@property (nonatomic, retain) UINavigationBar* audioNav; 

@property (nonatomic, retain) MPMoviePlayerController* player; 
@property (nonatomic, retain) UILabel* elapsed; 
@property (nonatomic, retain) UILabel* remaining; 
@property (nonatomic, retain) UISlider* slider; 
@property (nonatomic) BOOL sliderEditing; 
@property (nonatomic, retain) UIButton* playBtn; 

@property (nonatomic, retain) UITabBar* tabBar; 

//Images 

@property (nonatomic, retain) UIImage* announcement; 
@property (nonatomic, retain) NSMutableArray* seriesBanners; 
@property (nonatomic, retain) UIProgressView* prog; 

- (void)plistDone; 

@end 
+0

.m 파일이 대상에 추가 되었습니까? –

+0

ViewController.h 내용보기 –

+0

Clean을 시도 했습니까? –

답변

12

같이, 당신의 CurrentGetter 헤더 파일에 클래스의 전방 선언을 수행하십시오 : 이것은 "라는 클래스가 존재하는 컴파일러를 알려줍니다

@class ViewController; 
@interface CurrentGetter : NSOperation 

ViewController. " 순환 종속성이있는 경우, 두 클래스가 서로의 인스턴스를 가질 때와 같이 클래스의 전달 선언을 사용하면 혼동이 해결됩니다.

+0

그 라인으로 빌드가 성공했습니다. 왜 이것이 효과가 있었는지 설명해 주시겠습니까? – David

+0

예, 죄송합니다. 나는이 사이트에 조금 새로운 것이므로 설명을 포함하는 것이 좋은 형태라고 생각한다는 사실을 잊어 버렸다. 내 간단한 설명이 의미가 있습니까? – ewrobinson

+0

그렇다면 ImageGetter 클래스는 정확히 똑같은 코드를 가지고 있더라도 CurrentGetter 클래스가 제대로 빌드되지 않았습니까? – David