title: call to setter gives unrecognized selector error
body: <p>I'm trying to subclass NSString to give it a property that is another NSString. No matter what I try with @synthesize or @dynamic or manually coding my setters and getters, I keep getting this "unrecognized selector sent to instance" error when I compile.</p>
  
  <p>I know this has probably already been answered but after looking through about 15 other "unrecognized selector" questions on this site I am still at a loss. Sorry, I started coding VERY recently so I'm probably just missing something exceedingly simple.</p>
  
  <p>Furigana.h</p>
  
  <pre><code>@interface Furigana : NSString
  
  @property (strong, nonatomic) NSString *forKanji;
  
  -(void)setForKanji:(NSString *)forKanji; //fails the same with or without this line
  
  @end
  </code></pre>
  
  <p>Furigana.m</p>
  
  <pre><code>#import "Furigana.h"
  
  @implementation Furigana
  @synthesize forKanji = _forKanji;
  //@dynamic forKanji; tried this
  
  -(NSString *)forKanji { //also fails when custom setter/getters are left out
      if(!_forKanji) _forKanji = [[NSString alloc] init];
      return _forKanji;
  }
  
  -(void)setForKanji:(NSString *)forKanji {
      if(!_forKanji) _forKanji = [[NSString alloc] init];
      _forKanji = forKanji;
  }
  
  @end
  </code></pre>
  
  <p>Reibun.m</p>
  
  <pre><code>#import "Furigana.h"
  
  -(NSArray *)parseFurigana:(NSArray *)unparsedData {
      NSMutableArray *furigana = [[NSMutableArray alloc] init]; //of Furigana
      for(unsigned int x = 0; x &lt; [unparsedData count]; x++){
          NSArray *components = [[NSArray alloc] init];
          components = [[unparsedData objectAtIndex:x] componentsSeparatedByString:@":"];
          Furigana *newFurigana = [[Furigana alloc] init];
          newFurigana = [components objectAtIndex:1];
          NSLog(@"stored string: %@",newFurigana); //so far so good
          newFurigana.forKanji = [components objectAtIndex:0]; //crash
          //[newFurigana setForKanji:[components objectAtIndex:0]]; //this fails too
          [furigana addObject:newFurigana];
      }
      return furigana;
  }
  </code></pre>