我得到Lexical or Preprocessor Issue 'Group.h' file not found
,我认为这是导致下面问题的原因。
我试图在我的一个核心数据类实例上调用一个方法,我得到一个'Group' may not respond to '-addPeople:'
警告。但我在XCode生成的Group类中有一个addPeople方法,在这里:
- (void)addPeople:(NSSet *)value {
[self willChangeValueForKey:@"people" withSetMutation:NSKeyValueUnionSetMutation usingObjects:value];
[[self primitiveValueForKey:@"people"] unionSet:value];
[self didChangeValueForKey:@"people" withSetMutation:NSKeyValueUnionSetMutation usingObjects:value];
}
我也得到同样的警告,如果我尝试removePeople
。这两个方法都需要用到nsset但我能从Group类中调用setter。
[selectedObject setTitle:[[titleCell textField] text]]; // works
[selectedObject setSubtitle:[[subTitleCell textField] text]]; // works
NSSet *tempPeople = [NSSet setWithArray:people];
[selectedObject addPeople:tempPeople]; // works, but with warning
边注
当我输入[selectedObject
时,我没有得到自动完成,虽然单词selectedObject作为一个组自动完成。所以至少这是好的。
Group.h
@class People;
@interface Group : NSManagedObject {
@private
}
@property (nonatomic, retain) NSString * title;
@property (nonatomic, retain) NSNumber * order;
@property (nonatomic, retain) NSString * subtitle;
@property (nonatomic, retain) NSSet* people;
@end
我刚刚创建了一个新的UITableViewCell类现在它不是说Lexical or Preprocessor Issue 'Group.h' file not found
而是说Lexical or Preprocessor Issue 'PersonCell.h' file not found
如果您也能够发布您的接口文件将会很有帮助。以下是我可能会看到的一些原因:
你有一个Group.h文件,但是它没有这些方法的方法声明。您有一个Group.h文件,它确实有方法声明,但是您没有将Group.h导入到另一个类中。您根本没有Group.h文件,并且正在尝试将方法和变量配置为实现文件中的私有对象。
你能给我们发更多的代码吗?也可能是[selectedObject]声明?
词法或预处理器问题
嗯,我不知道我的问题是什么,所以我做了一个新项目,重做了每个视图控制器,core data和其他任何我需要的。这就解决了我的问题。我希望我知道是什么导致了Lexical错误,但从其他人的帖子来看,这可能是一个bug。
组'可能不响应'-addPeople:
此问题已通过将方法添加到.h文件中解决。我不知道为什么XCode没有为我做这些,但这解决了这个问题。
谢谢xianritchie帮我解决这个问题。