sourceObject와 destinationObject는 모두 SameClass의 인스턴스입니다. SameClass는 싱글 톤입니다. 본질적으로 같은 객체는 두 개의 서로 다른 이름을 가지며 메소드 레벨에서 동작이 다릅니다. 내가 코드 줄이 있습니다 NSInvocation - 메시지가 내부에서 전달 된 사람을 알아내는 방법 forwardInvocation :
//some code in some place
[singleton1Object increase: 20];
//some code in a completely different place
[singleton2Object increase: 40];
어느 singleton1Object 또는 singleton2Object 구현 증가 (여기에 대칭이를, 나는 그들이 같은 메소드를 호출하지만 두 개의 서로 다른 상황에서 두 개의 서로 다른 장소에서 필요) : 대신 둘 에, 그리고 행 노선의 내 결정의 기초 :
forwardInvocation
- (void)forwardInvocation:(NSInvocation *)anInvocation
{
//determine where the message came from
}
이 코드 singleton1Object 또는 singleton2Object 처음받은 인상의 어느 부분을 결정하는 방법은 없나요 각각의 방향 각 (다른 개체) 메시지를 직접 사용 내부에서 forwardInvocation :?
참고 : Singleton은 보낸 사람과받는 사람 모두에게 메시지를 보냅니다. 그는 코드에서 두 개 이상의 이름으로 참조하고, 변수 두 개에 저장하며, 메소드에서 메소드로 이동할 때까지이 작업을 계속 수행하여 이해할 수없는 경우 다른 메시지로 전달합니다. 내가 코드에서 주로 singleton1Object 및 singleton2Object로 결정하거나 다른 기술을 통해 메시지를 전달해야하는 위치를 알 수 있습니다. 수정 된 질문에 대한 자세한 내용은 편집을 참조하십시오.
발신자에게 전달 전 또는 착신 전환 중입니까? – CodaFi
싱글 톤은 보낸 사람과받는 사람 모두에게 메시지를 보낸다. 그는 자신이 이해하지 못하는 방법이 될 때까지 계속이 작업을 계속 수행하여 메시지를 다른 대상으로 전달합니다. 코드에서 주로 singleton1Object 및 singleton2Object에 의해 결정되는 곳에서 메시지를 전달해야하는 위치를 알 수 있습니다. 수정 된 질문에 대한 자세한 내용은 편집을 참조하십시오. – unmircea
나는이 혼란의 길을 피하기보다는 디자인을 바꾸는 것이 좋습니다. _two different_ names에 의해 참조되는 객체, 'self'도 아닌 객체는 나에게 소리가 나지 않습니다. 그것은 아마도 싱글 톤을 갖지 말아야한다는 것을 의미하지만 클래스의 두 인스턴스 또는 두 개의 분리 된 파생 클래스를 가질 수도 있습니다. –