title: NSDictionary may not respond to setObject:forKey on a NSMutableDictionary object
body: <p>I am new to Xcode and I am trying out this small program.</p>
  
  <pre><code>//  BookStoreMine.h
  //  BookStore
  
  #import &lt;Cocoa/Cocoa.h&gt;
  #import "Book.h"
  
  @interface BookStoreMine : NSObject {
  NSDictionary* mybookStore;
  
  }
  @property (retain) NSDictionary* myBookStore;
  
  -(id)init;
  -(void)printInventory;
  -(BOOL)addBook:(Book *)newBook;
  -(BOOL)removeBookWithTitle:(NSString *)whichTitle;
  -(void)dealloc;
  
  @end
  
  //  BookStoreMine.m
  //  BookStore
  #import "BookStoreMine.h"
  
  
  @implementation BookStoreMine
  @synthesize myBookStore;
  
  -(id)init {
      self = [super init];
      if (self != nil) {
      myBookStore = [[NSMutableDictionary alloc] init];
  }
  return self;
  }
  
  -(BOOL)addBook:(Book *)newBook {
  **[myBookStore setObject:newBook forKey:newBook.title];**
  return YES;
  }    
  
  -(BOOL) removeBookWithTitle:(NSString *)whichTitle{
  if ([myBookStore objectForKey:whichTitle] != nil) {
      **[myBookStore removeObjectForKey:whichTitle];**
      return YES;
  }
  return NO;
  }
  
  -(void)printInventory{
  Book *book;
  for (NSString* key in myBookStore) {
      book = [myBookStore objectForKey:key];
      NSLog(@" Title: %@",book.title);
      NSLog(@" Author: %@",book.author);
      NSLog(@" Description: %@",book.description);
      NSLog(@"ID is:%@",book.ID);
  }
  }
  
  -(void)dealloc{
  self.myBookStore = nil;
  [super dealloc];
  }
  
  @end
  </code></pre>
  
  <p>I get warnings on the lines where I use setObject method on myBookStore and also when I use the removeObject method on the myBookStore object. The warning is "NSDictionary may not respond to setObject:forKey or removeObject:forKey. Why am I getting a warning related to NSDictionary when the object I am using is a NSMutableDictionary? How do I get rid of the warning? (PS: The program compiles and runs without any problem)</p>