title: "Cannot find protocol declaration for ..." in adopting class objective c
body: <p>I'm a little frustrated at the moment with the custom delegate process in objective-c. I've used the design pattern a few times already and have a pretty good understanding of how it works. I've searched the internet for 2 hours trying to find what I'm doing wrong in this instance, and to no prevail. I also compared my past use of custom delegates that are functioning properly vs. this instance and can't see any conceptual difference. so here we go:</p>
  
  <p>I'm making a custom dual table view (one table for the list, and the other to hold the selections made from that list.) so that the user can make basic selections. here is the header file:</p>
  
  <pre><code>#import &lt;UIKit/UIKit.h&gt;
  #import &lt;Foundation/Foundation.h&gt;
  
  
  @protocol ListSelectorViewDelegate
  
  -(void) listTableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath;
  -(void) selectTableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath;
  
  -(void) listTableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath;
  -(void) selectTableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath;
  
  - (void)listTableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath;
  - (void)selectTableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath;
  
  @end
  
  
  @protocol ListSelectorDataSource
  
  -(UITableViewCell *)listTableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;
  -(UITableViewCell *)selectTableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;
  
  -(NSArray *)sectionIndexTitlesForListTableView:(UITableView *)tableView editStatus:(BOOL) status;
  -(NSArray *)sectionIndexTitlesForSelectTableView:(UITableView *)tableView editStatus:(BOOL) status;
  
  -(NSInteger)listTableView:(UITableView *)tableView sectionForSectionIndexTitle:(NSString *)title atIndex:(NSInteger)index;
  -(NSInteger)selectTableView:(UITableView *)tableView sectionForSectionIndexTitle:(NSString *)title atIndex:(NSInteger)index;
  
  @end
  
  @interface ListSelectorViewController : UIViewController {
  
   //Delegate
   id &lt;ListSelectorViewDelegate&gt; listsDelegate;
   id &lt;ListSelectorDataSource&gt; listsDataSource;
  
   //Titles
   IBOutlet UINavigationBar *pageNavBar;
   IBOutlet UINavigationBar *selectNavBar;
   IBOutlet UINavigationBar *listNavBar;
  
   //Tables
   IBOutlet UITableView *selectTable;
   IBOutlet UITableView *listTable;
  
   //Table Data
   NSMutableArray *listItems;
   NSMutableArray *selectItems;
  
   //Search Bars
   IBOutlet UISearchBar *selectedSearch;
   IBOutlet UISearchBar *listSearch;
   BOOL listTableIsSearching;
   BOOL selectTableIsSearching;
  
  }
  
  @property(nonatomic,assign) id &lt;ListSelectorViewDelegate&gt; listsDelegate;
  @property(nonatomic,assign) id &lt;ListSelectorDataSource&gt; listsDataSource;
  
  
  -(IBAction) newItem:(id)sender;
  -(IBAction) selectAll:(id)sender;
  -(IBAction) clearSelections:(id)sender;
  
  @end
  </code></pre>
  
  <p>Notice the formal protocol declarations. Also note that this, along with the .m file compile fine. When I try to write a class to adopt the protocol I get the error "Cannot find protocol declaration for "ListSelectorDataSoure" ". I get the same message for the "ListSelectorViewDelegate" as well. Here is the .h file for the delegate class:</p>
  
  <pre><code>#import &lt;Foundation/Foundation.h&gt;
  #import"ListSelectorViewController.h"
  
  @interface ListSelectorDelegateTemplate : NSObject 
   &lt;ListSelectorDataSource,ListSelectorViewDelegate&gt;{
  
  }
  
  @end
  </code></pre>
  
  <p>Note that I am importing the ListSelectorViewController.h where the protocol declarations are found. Also note that when typing "  " it does auto complete which means it does see it. Like I said, I've done it this exact way for other objects with no issues and cannot wrap my head around this one ... Any Help at all would be greatly appreciated</p>