title: What is the purpose of the – accessoryDidDisconnect: method within the EAAccessoryDelegate?
body: <p>I've been working on an iOS implementation that is connecting to hardware and, as such, I am having to make use of the External Accessory framework.  In order to interact with devices, you need to have a class that handles communication with <code>EAAccessory</code> objects.  To do this, you have to define your device connectivity class with the <code>EAAccessoryDelegate</code> protocol.</p>
  
  <p>The <code>EAAccessoryDelegate</code> protocol contains one method-- </p>
  
  <p><code>– accessoryDidDisconnect:(EAAccessory *)accessory</code>.</p>
  
  <p>The Apple documentation states:</p>
  
  <blockquote>
    <p>The <code>EAAccessoryDelegate</code> protocol defines a single method for receiving
    notifications when the associated <code>EAAccessory</code> object is disconnected.
    Implementation of this method is optional.</p>
  </blockquote>
  
  <p>When you are instantiating your class, you can register your own methods with the <code>NSNotificationCenter</code> system.  When there is either a Device Connect or Device Disconnect event you can handle the event as you desire.  When the Device Disconnect event occurs, the purpose of the <code>- accessoryDidDisconnect:</code> is rendered pointless because it provides the exact same functionality and data to your class.</p>
  
  <p>Furthermore, ever example that I can find regarding working with the External Accessory Framework gives examples of detecting device connectivity changes via the <code>NSNotificationCenter</code> subscription mechanism.</p>
  
  <p>With that said, what is the point of the <code>– accessoryDidDisconnect:</code> method when it's never really used?  Yes, it can be implemented but as I mentioned, all forms of documentation recommend that you manage these types of connectivity changes through the <code>NSNotificationCenter</code>.</p>
  
  <p>I know this is a knit-picky question but I am quite curious.</p>