BOOL isnot=true;
for(BGAddressAnnotation * old in oldAnnot){
if(new.myBiz==old.myBiz){
//[self animationOutAndInBetweenNew:new andOld:old];
isnot=false;
}else{
}
}
起初我很困惑为什么我的程序员这样做而不只是使用NSArray containsObject。然后我才意识到。他不看对象是否在数组中。
数组的类型为BGAddressAnnotation。每个都包含对myBiz的引用。他想知道商业是否包含在oldAnnot中。
有没有更快捷的方法来使用say,keyPath,或者他的方式确实是这样的
答案 0 :(得分:1)
您可以尝试以下内容,我很确定它会更快。如果没有,我至少认为看起来更好!
NSArray *oldAnnot = ...
NSArray *oldAnnotBizs = [oldAnnot valueForKeyPath:@"@unionOfObjects.myBiz"];
BOOL isFound = [oldAnnotBizs containsObject:new.myBiz];
请注意,我已经颠倒了BOOL变量的含义,因为我认为你应该避免使用双重否定(例如isFound = YES比isnot = NO更好)。