incompatible pointer types assigning to 'UILabel *__weak' to 'NSString *__strong'?

ios, iphone, objective-c, string, xcode

Solution

It should be:

labelthatrecivesthetextfieldvalue.text = string;

Under the hood:

After your xib instantiated an `UILabel` and you get its reference using the `IBOutlet` keyword, you are then trying to use the `UILabel` pointer to point to a space in memory allocated and instantiated for a `NSString`, that's why you are having this problem. You probably also did get a warning about that assignment you tried to do:

labelthatrecivesthetextfieldvalue = string;

You should always try to fix warnings.

What you want:

You simply want the `UILabel` to display the `NSString` you just created, and for that you should use the `UILabel's` text property.

Problem

i've been doing a thing here using objective-c, but i'm a beginner in this language, and that's what i did: there is a class, named "firstviewclass", that is in the control of my first view, in this view there is a textfield that the user puts a number. the textfield is in the firstviewclass.h named "setNumber". There is another class, named "secondviewclass" that is in control of the second view, in this view there is a label that is in the secondviewclass.h, and i want that this label recive the value that the user put in the textfield from the first view. my codes: firstviewclass.h: ``` #import <UIKit/UIKit.h> @interface firstviewclass : UIViewController @property (strong, nonatomic) IBOutlet UITextField *setNumber; - (IBAction)gotonextview:(id)sender; @end ``` secondviewclass.h: ``` #import <UIKit/UIKit.h> #import "firstviewclass.h" @interface secondviewclass : UIViewController @property (weak, nonatomic) IBOutlet UILabel *labelthatrecivesthetextfieldvalue; @end ``` secondviewclass.m: ``` #import "secondviewclass.h" #import "firstviewclass.h" @implementation secondviewclass @synthesize labelthatrecivesthetextfieldvalue; -(void)viewDidLoad{ [super viewDidLoad]; firstviewclass *object = [[firstviewclass alloc] init]; NSString *string = [[NSString alloc] initWithFormat:@"%i", [object.setNumber.text intValue]]; labelthatrecivesthetextfieldvalue = string; //here is where that error appears "incompatible pointer types assigning to 'UILabel *__weak' to 'NSString *__strong'" } @end ``` I've changed what you had told me to change, but when i test it on the simulator any number that i put in the textfield it appears in the label as 0... i really don't know what to do!

Original source