title: iOS NSInvalidArgumentException, unrecognized selector sent to instance
body: <p>i'm a newbie to iOS, working through the tutorials.
  Now, i have this piece of code:</p>
  
  <pre><code>- (void)viewWillAppear:(BOOL)animated
  {
      // [super viewWillAppear:animated];
      if(self.firstName)
      {
          NSLog(@"%@",self.firstName);
          self.textFieldFirstName.text = self.firstName;
      }
  }
  </code></pre>
  
  <p>Firstly, as above, i had to comment out the call to super - the app did not want to start.
  Secondly: the assignement 
      self.textFieldFirstName.text = self.firstName; 
  crashes the app with SIGABORT and output:</p>
  
  <pre><code>2014-10-13 11:50:19.631 PersonalStoryboard[1451:60b] firstName = John
  2014-10-13 11:50:19.636 PersonalStoryboard[1451:60b] John
  2014-10-13 11:50:19.636 PersonalStoryboard[1451:60b] -[UIView setText:]: unrecognized selector sent to instance 0x8f97470
  2014-10-13 11:50:19.639 PersonalStoryboard[1451:60b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIView setText:]: unrecognized selector sent to instance 0x8f97470'
  *** First throw call stack:
  </code></pre>
  
  <p>Why? Thanks in advance.</p>
  
  <hr>
  
  <p>Thanks folks. 
  File 1:</p>
  
  <p>//</p>
  
  <pre><code>#import "FirstNameEditViewController.h"
  
  @interface FirstNameEditViewController ()
  @property (strong, nonatomic) IBOutlet UITextField *textFieldFirstName;
  @end
  
  @implementation FirstNameEditViewController
  
  - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
  {
      self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
      if (self) {
          // Custom initialization
      }
      return self;
  }
  
  - (void)viewDidLoad
  {
  [super viewDidLoad];
  // Do any additional setup after loading the view.
  }
  
  - (void)didReceiveMemoryWarning
  {
      [super didReceiveMemoryWarning];
      // Dispose of any resources that can be recreated.
  }
  - (void)viewWillAppear:(BOOL)animated
  {
      // [super viewWillAppear:&lt;#animated#&gt;];
      if(self.firstName)
      {
          NSLog(@"%@",self.firstName);
          self.textFieldFirstName.text = self.firstName;
      }
  }
  </code></pre>
  
  <p>@end</p>
  
  <p>File 2:</p>
  
  <pre><code>#define LogPretty NSLog(@"LogPretty:%s %d %s",__FILE__,__LINE__,__PRETTY_FUNCTION__);
  #import "PersonalDetailViewController.h"
  #import "FirstNameEditViewController.h"
  #import "Person.h"
  
  @interface PersonalDetailViewController ()
  
    @property (strong, nonatomic) IBOutlet UIButton *buttonFirstName;
    @property (strong, nonatomic) IBOutlet UIButton *buttonName;
    @property (strong, nonatomic) IBOutlet UIButton *buttonAge;
    @property (strong, nonatomic) IBOutlet UIButton *buttonJob;
    @property (strong, nonatomic) IBOutlet UIButton *buttonSalary;
  
  @end
  
  @implementation PersonalDetailViewController
  {
      Person *person;
   }
  - (void)viewDidLoad
  {
      [super viewDidLoad];
      // Do any additional setup after loading the view, typically from a nib.
      person = [[Person alloc] init];
      [self showPerson];
  }
  
  - (void)showPerson
  {
      LogPretty
      /*
       IT CRASHES HERE !!!
  
      [self.buttonFirstName setTitle:person.firstName forState:UIControlStateNormal];
      [self.buttonName setTitle:person.name forState:UIControlStateNormal];
      [self.buttonJob setTitle:person.job forState:UIControlStateNormal];
      [self.buttonAge setTitle:person.age forState:UIControlStateNormal];
      [self.buttonSalary setTitle:person.salary forState:UIControlStateNormal];
      */
  }
  
  - (void)didReceiveMemoryWarning
  {
      [super didReceiveMemoryWarning];
      // Dispose of any resources that can be recreated.
  }
  - (IBAction)buttonFirstNameTouched:(id)sender {
      [self performSegueWithIdentifier:@"firstNameEditSegue" sender:(self)];
  }
  - (IBAction)buttonNameTouched:(id)sender {
  }
  - (IBAction)buttonAgeTouched:(id)sender {
  }
  - (IBAction)buttonJobTouched:(id)sender {
  }
  - (IBAction)buttonSalaryTouched:(id)sender {
  }
  - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
  {
      NSLog(@"identifier = %@",segue.identifier);
  
      if([segue.identifier isEqualToString:@"firstNameEditSegue"])
      {
          NSLog(@"firstName = %@",person.firstName);
          FirstNameEditViewController *editController = segue.destinationViewController;
          editController.firstName = person.firstName;
      }
  }
  @end
  </code></pre>
  
  <p>And finally the Person:</p>
  
  <pre><code>#define LogPretty NSLog(@"%s %d %s",__FILE__,__LINE__,__PRETTY_FUNCTION__);
  #import "Person.h"
  
    @implementation Person
  
  - (id) init
  {
      LogPretty
      self = [super init];
      if(self)
      {
          self.firstName = @"John";
          self.name = @"Brown";
          self.job = @"Developer";
          self.age = 35;
          self.salary = 35000;
      }
      return self;
  }
  @end
  </code></pre>
  
  <p>i'll be greatfull for help</p>