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;
}
發現,謂語是正確的,我只是相對於一個錯誤的對象。 –