2012-09-08 2 views
0

내가 객관적 C에 새로운 오전 그리고 난 C++ 에 프로그래밍을 한 지금은 @property ... 를 사용하는 방법을 잘 모릅니다과 그것을 를 사용할 때 내가 그것에 대해 많이 빨간색과 내가재산권 문제

을 이해 didnt는

지금은 내가이 C++에서 만든 프로젝트를 만들려고 노력하고 객관적인 C 방법을 내가 을 (체커 게임)를 만들기 위해 노력하고

를 입력하려고 2 개 클래스 1 보드 2-가 있어요 셀 ... 이것은 셀 클래스입니다.

#import <Foundation/Foundation.h> 

@interface Cell : NSObject 

{ 
    int number; 
    char checker; 
} 
@end 

보드에 Class.h

#import <Foundation/Foundation.h> 
#import "Cell.h" 
//I dont know use it or not :S the @class 
//@class Cell; 

@interface Board : Cell 
{ 
    //is the definition right ? 
    Cell *DrawCell[64]; 

} 

내가 board.m 입력하면

[ DrawCell [i] checker] = 'X' ; 

그것은 이러한 오류 준다 :
오브젝티브의 "읽기 전용"복귀 결과에 할당을 -C 메시지를 허용하지 않습니다.

내가 입력했지만

@property (nonatomic) int number ; 
@property (nonatomic) char checker; 

과 내가 그들에게 를 합성하는 시도했지만이 오류를 보여줍니다

할 이유를 수행하는 때 당신이이

+0

당신은 세터와 게터를 사용해야와, C++에

DrawCell[i].GetChecker() = 'X' 

을하는 것과 동일합니다. 지금은 getter를 사용하여 필드를 반환하려고 시도했지만 필드를 반환하지 않고 값을 반환하고 익명 반환 값에 값을 할당하려고했습니다. – awiebe

답변

1

:-)

감사를 할 무엇을 설명해주십시오 사용 :

[DrawCell [i] setChecker:'X'] 

또는

당신이 그랬던 것처럼 호출
DrawCell[i].checker = 'X' 

이 정의

class Cell { 
    public: 
    char GetChecker() { return _checker; } 
    void SetChecker(char newVal) { _checker = newVal; } 
    private: 
    char _checker; 
}