2011-09-06 5 views

답변

9

짧은 답변 : 이 아니, 것을 할 수는 없습니다. 당신은 대부분 방법과 속성의 가용성을 강요 할 수 있습니다.

+0

루디에게 감사드립니다. 이것은 단지 생각이었습니다. 내가 정말 이상한 디자인 패러다임을 구현할 때. 어떤 일을해야합니까? – doNotCheckMyBlog

+2

어떤 인스턴스 변수 객체가 사용되는지 신경 쓰지 않아야합니다. 속성을 선언하고 프로토콜을 구현하는 클래스가 원하는대로 가져 와서 설정할 수있게하십시오. – Tommy

+0

해결 방법 없음. 나는 특정 인스턴스 변수의 존재를 강요 할 수있는 것을 모른다. 속성을 대체품으로 사용하십시오. –

3

@protocol에서 ivars를 선언 할 수는 없지만 일치하는 클래스가 접근 자와 변형자를 구현하도록 강제 할 수 있습니다. 예 :

@protocol Priced 
@property(assign, nonatomic) double price; 
@end 

@interface Carrot : NSObject <Priced> { 
    double price; 
} 
@end 
@implementation Carrot 
@synthesize price; 
@end 
+0

예. 나는 A.K.A.라는 방법을 알고있었습니다. 행동. 그러나 프로그래머에게 must 변수를 추가하도록 강요 한 생각. 감사합니다 – doNotCheckMyBlog

1

개체를 구체적인 하위 클래스로 만들 수 있습니다. 그것은 그들이 당신이 필요로하는 내부 구조를 담고 있는지 확인하는 유일한 방법 일 것입니다. 물론 클래스가 내부적으로 데이터를 저장하는 방법에 관심이 있다면 ... 그것은 끔찍한 패러다임을 위반하는 것입니다.

+0

+1 하위 클래스 (사용자) 클래스가 Objective-C에서 (예를 들어) C++보다 훨씬 드물게 보이지만 '@ 프로토콜'은 OP의 필요에 맞는 도구가 아닐 수도 있습니다. – Ephemera

+0

나는 종종 하위 클래스를 만드는 경향이있다 ... 나는 많은 코코아/iOS 프로그래머들이 그들이 익숙한 툴을 사용한다고 생각한다. 이것은 C++과 자바가 OOP와 함께 대학에서 가르쳐졌으며 ~ 20 년... –

관련 문제