>  Q&A  >  본문

objective-c - 相求一个资料:IOS中各种传值方法的优缺点:我特别想知道属性传值与代理传值、通知、块传值的优缺点?

相求一个资料:IOS中各种传值方法的优缺点:我特别想知道属性传值与代理传值、通知、块传值的优缺点?

目前小弟只会代理和属性,但是就这两种也不知道有啥不同,小弟为小白求赐教~~搜索了很多也没有没有详尽的资料如果您有麻烦指导下。

迷茫迷茫2722일 전426

모든 응답(1)나는 대답할 것이다

  • PHPz

    PHPz2017-04-17 17:45:08

    1. 속성은 가장 직접적입니다. 두 개체가 직접 접촉할 수 있습니다. 예를 들어 UIImageView는 UIViewControllerA에 내장되어 있으며 UIImageView에 그림을 제공합니다.
    2. 프록시의 환경은 일반적으로 A가 B를 작동한 후 B가 조건이 충족될 때까지 즉시 결과를 반환하지 않고 B가 A에게 알리기 위해 돌아옵니다. 일반적인 네트워크 요청의 특징은 다음과 같습니다. 반환 조치.
    3. 블록은 동작이 대리자와 유사하며 콜백에도 사용됩니다. 하지만 (1) 팝업 상자와 같이 블록을 작성하는 것이 더 쉽고, 팝업 상자 다음에 이벤트 콜백을 클릭합니다. 그런 다음 해당 콜백 AlertView.clickBlock = xxx를 작성할 수 있습니다. 대리자(2) 블록에 대한 다른 메서드를 빌드하면 내부 개체가 복사되어 좋은 격리 효과가 있습니다. 예를 들어 A는 일반 싱글톤인 B->A->C이고 C는 콜백 B를 처리합니다. E->A->F인 경우 F는 E에 대한 콜백을 처리합니다. 대리자인 경우 C가 A를 다시 호출한 후 A는 B 또는 E를 다시 호출합니까? A는 모른다. 그러나 블록은 객체를 복사합니다. B가 블록을 생성할 때 C가 얻는 콜백 객체는 B입니다. 이건 좀 이해하기 어렵네요.
    4. 처음 두 개와 비교하면 알림은 다음과 같습니다. (1) 일대다, 하나의 알림이 전송되면 모든 수신자가 응답하며 동기화됩니다. (2) 발신자와 수신자 사이에는 직접적인 관계가 없습니다. 특히 복잡한 프로젝트에서 두 개체가 서로 접촉할 수 없는 경우 알림을 사용하여 메시지를 보낼 수 있지만 혼란스럽습니다. 예를 들어 로그인에 성공하면 여러 곳에서 데이터를 업데이트해야 하는데 로그인 모듈은 로그인 성공 후 해야 할 일을 관리하는 것이 아니므로 로그인 모듈을 사용하는 것이 좋습니다. 알림. 물론 프로젝트에는 교차 상호 작용이 가능한 한 적어야 합니다.

    회신하다
    0
  • 취소회신하다