문제

저는 하드웨어에 연결하는 iOS 구현 작업을 진행 중이므로 외부 액세서리 프레임워크를 사용해야 합니다.장치와 상호 작용하려면 통신을 처리하는 클래스가 필요합니다. EAAccessory 사물.이렇게 하려면 다음을 사용하여 장치 연결 클래스를 정의해야 합니다. EAAccessoryDelegate 규약.

그만큼 EAAccessoryDelegate 프로토콜에는 하나의 메서드가 포함되어 있습니다.

– accessoryDidDisconnect:(EAAccessory *)accessory.

Apple 설명서에는 다음과 같이 명시되어 있습니다.

그만큼 EAAccessoryDelegate 프로토콜이 연관 될 때 알림을 수신하기위한 단일 메소드를 정의합니다. EAAccessory 개체의 연결이 끊어졌습니다.이 방법의 구현은 선택 사항입니다.

클래스를 인스턴스화할 때 자신만의 메서드를 등록할 수 있습니다. NSNotificationCenter 체계.Device Connect 또는 Device Disconnect 이벤트가 있는 경우 원하는 대로 이벤트를 처리할 수 있습니다.Device Disconnect 이벤트가 발생하면, - accessoryDidDisconnect: 클래스에 정확히 동일한 기능과 데이터를 제공하기 때문에 의미가 없습니다.

또한, 외부 액세서리 프레임워크 작업과 관련하여 제가 찾을 수 있는 예는 다음을 통해 장치 연결 변경을 감지하는 예를 제공합니다. NSNotificationCenter 구독 메커니즘.

그렇게 말하면, 그 요점이 무엇입니까? – accessoryDidDisconnect: 실제로 사용되지 않은 방법은 무엇입니까?예, 구현할 수 있습니다. 하지만 앞서 언급했듯이 모든 형태의 문서에서는 이러한 유형의 연결 변경 사항을 관리할 것을 권장합니다. NSNotificationCenter.

매우 까다로운 질문인 것은 알지만 꽤 궁금합니다.

도움이 되었습니까?

해결책

이는 매우 일반적인 NSNotificationCenter 알림에 대한 지름길을 제공하기 위한 Apple의 매우 일반적인 디자인 패턴입니다.OS X에서는 많은 NSWindow 알림을 사용하여 이 작업을 수행하며 이러한 경우 NSNotification의 내용을 전달합니다.

기본적으로 이는 관찰자를 추가하고 제거하는지 확인하지 않고도 알림을 구현하는 쉬운 방법입니다.

특히 이는 EAAccessory 객체가 생성된 후에만 사용되므로(액세서리를 연결한 후에만 발생) 현재로서는 연결 방법을 적용할 수 없습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top