2014-03-12 4 views
1

에서 복사 한 코드에 '예상 표현'오류가 발생했습니다. 스탠포드 iOS 7 과정의 13 장 핵심 데이터 및 TableView의 소스 파일에서 아래 코드를 복사했습니다. 이 줄은 스크린 캐스트 내가지고있어 오류가 expected expression입니다스탠포드 iOS 7 자습서

NSDictionary *userInfo = self.photoDatabaseContext ? @{ PhotoDatabaseAvailabilityContext : self.photoDatabaseContext } : nil; 

에서 강사에 대한 없더라도 오류를 던지고있다. 또한 스크린 캐스팅에서 @{ ... }이 파란색으로 강조 표시되어 있지만 (XCode에 의해 수행 됨) 나에게 그것은 분명히 검은 색 텍스트라는 것을 알 수 있습니다. XCode가 나를 위해 다르게 이해한다고 생각합니다.

#import "PhotoDatabaseAvailability.h" 
... 
- (void)setPhotoDatabaseContext:(NSManagedObjectContext *)photoDatabaseContext 
{ 
    _photoDatabaseContext = photoDatabaseContext; 
    NSDictionary *userInfo = self.photoDatabaseContext ? @{ PhotoDatabaseAvailabilityContext : self.photoDatabaseContext } : nil; 
    [[NSNotificationCenter defaultCenter] postNotificationName:PhotoDatabaseAvailabilityNotification 
                 object:self 
                 userInfo:userInfo]; 
} 

왜 내가 해당 라인에 expected expression 오류가 발생하는지 설명 할 수 있습니까?

편집

또한 내가 그 PhotoDatabaseAvailabilityContext

PhotoDatabaseAvailability.h

#ifndef Photomania_PhotoDatabaseAvailability_h 
#define Photomania_PhotoDatabaseAvailability_h 

#define PhotoDatabaseAvailabilityNotification @"PhotoDatabaseAvailabilityNotification" 
#define PhotoDatabaseAvailabilityContext = @"Context" 


#endif 
+0

어떤 Xcode 버전을 사용하고 있습니까? – matt

+0

@matt 버전 5.0.2 – BrainLikeADullPencil

+0

그럼 그게 문제가 아니야. : – matt

답변

2

문제가 들어 위의 파일로 파일 (아래 코드) 수입이 줄입니다했습니다 참고 :

#define PhotoDatabaseAvailabilityContext = @"Context" 

sign - 이름과 값 사이의 공백.

방법은 #define입니다. 텍스트를 직접 대체하는 것입니다. 따라서 문자 그대로 PhotoDatabaseAvailabilityContext이라는 단어를 사용하는 지점에 실제 코드에 =을 삽입하고 있습니다. 그래서 컴파일러는 =에서 질식합니다. 사전 리터럴의 중간에 위치하지 않습니다.