프록시 설계 모드, 프록시 및 알림의 차이점, KVC\KVO

1256 단어

대리점

  • 프록시 디자인 모델의 역할:
  • 1.A 대상은 B 대상의 일부 행위를 감청하고 A는 B의 대리가 된다
  • 2.B 대상은 A 대상에게 몇 가지 일을 알려주고 싶은데, A는 B의 대리가 된다
  • 프록시 디자인 모델의 총괄:
  • 다른 사람의 행동을 감청하고 싶다면 다른 사람의 대리가 되어야 한다
  • 다른 사람에게 알려주고 싶은 것이 있다면 대리인이 되라
  • 대리 디자인 모델의 개발 절차
  • 1.프로토콜 (프로토콜 이름의 형식: 컨트롤 이름 + Delegate) 을 작성하여 프로토콜에 프록시 방법을 설명합니다. (일반적인 프록시 방법은 @optional)
  • 2.프록시 속성 설명하기: @property (nonatomic, weak) id delegate;
  • 3.내부에서 어떤 행위가 발생할 때 대리에 대응하는 대리 방법을 호출하여 대리 내부에 무슨 일이 발생했는지 통지한다
  • 4.프록시 설정: xxx.delegate = yyy;
  • 5.yyy 대상은 협의를 준수하고 대리 방법을 실현한다

  • 에이전트와 알림의 차이점

  • 에이전트: 한 대상은 다른 한 대상에게 무슨 일이 일어났는지 알려줄 수 있다
  • 알림: 1개 대상은 N 개 대상에게 무슨 일이 일어났는지 알려줄 수 있다
  • KVC\KVO

  • KVC(Key Value Coding)의 일반적인 역할: 모델 속성에 값을 부여
  • KVO(Key Value Observing)의 일반적인 역할: 모델 속성 값의 변화를 감청
  • KVO 사용 단계
  • // cc aa name 
    [aa addObserver:cc forKeyPath:@"name" options: NSKeyValueObservingOptionOld context:nil];
    
    // cc 
    /**
     *  object keyPath 
     */
    - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
    {
        NSLog(@" %@ %@ , %@", object, keyPath, change);
    }
    

    좋은 웹페이지 즐겨찾기