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

丶灬走出姿态 提交于 2019-12-29 04:27:12

问题


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?


回答1:


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



回答2:


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

Then you have to use @synthesize property = _property




回答3:


pod update

then your can now update to 3.7.1 that has fixed this bug.



来源:https://stackoverflow.com/questions/24638826/xcode-6-how-to-fix-use-of-undeclared-identifier-for-automatic-property-synthes

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!