2014-12-11 3 views
1

Objective-C를 배우고 있으며 내가보고있는 자습서에서 Xcode의 구 버전을 사용하고 있습니다. 따라서 잘못된 유형의 클래스를 작성했는지 아니면 코드에 문제가 있는지 확실하지 않습니다.Objective-C : 인스턴스 변수가 범주에 포함되지 않을 수 있습니다.

Xcode에서 Command + N은 새 파일을 만들고 'OS X'아래의 'Source'를 클릭하고 Objective-C File을 클릭했습니다. 그런 다음 파일 유형에 대해 Category 및 class : NSObject를 선택했습니다. 튜토리얼에서 그 사람은 하위 클래스를 만들었고 새로운 Xcode의 유일한 Objective-C 관련 파일이기 때문에 이것을 사용하기로 결정했습니다. 머리글과 주 파일을 만든 후 다음 텍스트를 만들었습니다.

#import <Foundation/Foundation.h> 

@interface NSObject (Person){ 
    NSString *myName; 
    NSNumber *myAge; 
    NSNumber *myGrade; 
} 

@end 

덕분에 많이, Coler234

+0

엑스 코드의 버전은 클래스 선언에 대한 구문와 아무 관련이없는 말을해야합니다. 당신은 단순히 튜토리얼을 따라 가지 않았습니다. –

+0

오류 메시지가 완전히 분명합니다. 카테고리를 생성하고 그 안에 인스턴스 변수를 배치했습니다. 카테고리는 인스턴스 변수를 가질 수 없습니다. –

답변

5

카테고리 몇 가지 새로운 방법과 기존 클래스의 확장이다. 새 클래스가 아닌 카테고리를 정의한다는 것을 나타내려면 코드 (Person)에서와 같이 괄호 안의 범주 이름과 함께 클래스 이름을 따르십시오. 당신이 실제로 원하는 것을,하지만 사람이라는 NSObject의의 서브 클래스이다, 그래서 당신은

@interface Person : NSObject