ios - 多播代理和通知的优缺点
大家讲道理
大家讲道理 2017-04-18 09:24:50
0
1
483

为什么我们使用多播代理而不使用通知呢?
多播代理的具体应用场景有哪些?
求大神指导

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

모든 응답(1)
左手右手慢动作

좋은 질문입니다.
1. 제가 배운 설명은 알림이 간섭을 일으킨다는 것입니다. 예를 들어 A, B, C 세 장의 사진을 다운로드하려고 하는데 A가 다운로드를 완료하면 알림이 전송되고 사진이 있는 위치는 다음과 같습니다. B와 C도 알림을 받기를 기다리고 있지만 그럴 필요는 없습니다.

이 문제는 각 작업에 해당 ID를 추가하기만 하면 해결될 수 있다고 생각합니다. 예를 들어 위의 이미지를 다운로드하는 경우 알림 이름은 "loadImage_" + URL의 마지막 섹션으로 설정됩니다. 그리고 알림은 보낸 사람을 지정할 수 있습니다

으아악

2. 부담없이 사용할 수 있을 것 같아요. 프록시를 사용하면 몇 가지 장점이 있습니다. 대리자의 메서드 이름이 이미 정의되어 있고 인터페이스 정의가 명확하며 전달할 매개 변수를 알 수 있으므로 공동 개발이나 휠 빌딩에 더 좋습니다. 알림은 일반적으로 userinfo를 사용하여 매개변수를 전달합니다. 이는 지정된 유형이 없는 사전이며 내부 데이터 구조가 확실하지 않으며 매우 명확하지 않습니다.

3. 사실 블록이나 클로저를 사용하는 것이 가장 좋다고 생각합니다.

  • 여러 대리자를 배열에 추가해야 하므로 강력한 참조가 발생하고 순환 참조 문제가 발생할 수 있습니다.

  • 블록이 쓰기에 더 재미있는 것 같아요. 옆에 사진 다운로드 등 콜백 코드도 적어주시면 됩니다.

으아악

위임의 경우 특히 일부 매개변수를 전달해야 하는 경우 다른 메서드를 작성해야 합니다. 위임을 사용할 때 해당 임시 변수 페이지를 멤버 변수로 전환해야 합니다. 그렇지 않으면 메서드 간에 사용할 수 없습니다.

  • 마지막 블록은 격리 특성이 좋습니다.
    예를 들어 단일 인스턴스를 사용하여 모든 이미지 다운로드를 관리하고 이를 loadManager라고 가정합니다. 여러 대리자를 사용하는 경우에도 모든 다운로드 작업이 하나의 loadManager로 이동하므로 서로 다른 다운로드 작업을 구별해야 합니다. 위임 목록에는 다양한 다운로드 작업에 대한 위임이 포함되어 있지만 여전히 구별이 필요합니다. 그러나 블록을 사용하면 자연스럽게 분리될 수 있습니다. 즉, 블록이 서로 중첩되어 처음부터 분리된다는 것입니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿