0
    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 旅馆中。

有没有更快的方法来使用说,keyPath,或者他的方式确实是方式

4

1 回答 1

1

您可以尝试以下方法,我敢肯定它会更快。如果不是,我至少认为它更好看!

NSArray *oldAnnot = ...
NSArray *oldAnnotBizs = [oldAnnot valueForKeyPath:@"@unionOfObjects.myBiz"];
BOOL isFound = [oldAnnotBizs containsObject:new.myBiz];

请注意,我已经颠倒了您的 BOOL 变量的含义,因为我认为您应该避免使用双重否定(例如 isFound=YES 比 isnot=NO 更好)。

于 2013-08-22T22:21:12.387 回答