Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

xCode 6 how to fix "Use of undeclared identifier" for automatic property synthesis?

I'm using xCode6 Beta 3, and am running into an issue where a code which previously compiled fine (xCode 5.1.1 or xCode6 beta 2) suddenly started to give me "Use of undeclared identifier" errors when accessing an automatically synthesized instance variable:

- (void)setFinished:(BOOL)finished {     [self willChangeValueForKey:@"isFinished"];     _finished = finished;     [self didChangeValueForKey:@"isFinished"]; }  //ERROR:  Use of undeclared identifier '_finished'; did you mean 'finished'? 

Adding @synthesize finished = _finished; makes the error go away, but is there a way to force xCode6 Beta 3 to use automatic property synthesis using underscore notation?

like image 988
Alex Stone Avatar asked Jul 08 '14 18:07

Alex Stone


Video Answer


2 Answers

At first I thought it was a beta version bug, but today I saw that this type of errors occur on the XCode 6 GM Seed also, though I'm yet to discover in which particular cases.

Anyway, the fix is to add a synthesize statement in the @implementation block, explicitly declaring the name of the ivar as well as the property:

@synthesize property = _property 
like image 194
Şafak Gezer Avatar answered Sep 21 '22 16:09

Şafak Gezer


If you have an explicit getter, automatic property synthesized will be ignored.

Then you have to use @synthesize property = _property

like image 45
Jakub Truhlář Avatar answered Sep 20 '22 16:09

Jakub Truhlář