0
我正在构建一个游戏并且有一个咒语课程。在这个类中有一个这个咒语的活动实例列表。我试图通过使用谓词来检查这个咒语是否已经在某个目标上被投射:target ==%@。但是,下面的代码不会返回任何对象。iOS如何使用自定义对象键创建NSPredicate?
如何检查一个键是否等于谓词中的自定义对象?
-(BOOL)checkHasUniqueInstanceWithModel:(CharacterModelNode*)targetModel
{
NSPredicate *uniqueSkillInstancePredicate =
[NSPredicate predicateWithFormat:@"target == %@", targetModel];
NSArray *results = [self.activeInstances filteredArrayUsingPredicate:uniqueSkillInstancePredicate];
if(results.count == 0)
{
return NO;
}else if(results.count == 1)
{
return YES;
}else
{
NSAssert(false,@"Duplicate unique instance with skill: %@ on target: %@",self.name,targetModel.character.name);
}
return NO;
}
发现,谓语是正确的,我只是相对于一个错误的对象。 –