![](/img/trans.png)
[英]How can I make colors in Adobe Illustrator line up more closely with colors on the iPhone 4?
[英]How can I make sub-object searching more terse?
我對一種簡潔的方法感興趣,可以在需要子對象級別的數組中查找匹配項。 性能不必接近理想,但應該合理。
對於這種情況, 我不想添加反向關系或管理保留的字典 。 我根本不想更改模型。
Object1包含一個Object2,而Object2包含一個Object3。 我知道以下方法將返回第一個匹配項,但是返回每個匹配項的解決方案也是可以接受的。
-(Object1*)getObject1ForObject3:(Object3*)object3
{
for(Object1 *object1 in self.object1s)
if(object1.object2.object3 == object3)
return object1 ;
return nil ;
}
為了聲望,如果中間有一對多的關系,我們可以使它簡潔嗎?
-(Object1*)getObject1ForObject3:(Object3*)object3
{
for(Object1 *object1 in self.object1s)
for(Object2 *object2 in object1.object2s)
if(object2.object3 == object3)
return object1 ;
return nil ;
}
嗯,用於聲明NSPredicate的API並不十分簡潔 ,但它可能比您正在做的還要簡潔。
對於第一種情況,中間沒有一對多:
NSPredicate *pred = [NSPredicate predicateWithFormat:@"object2.object3 == %@", object3];
NSArray *matchingObj1s = [self.object1s filteredArrayUsingPredicate];
當中間存在一對多關系時:
NSPredicate *pred = [NSPredicate predicateWithFormat:@"ANY object2s.object3 == %@", object3];
NSArray *matchingObj1s = [self.object1s filteredArrayUsingPredicate];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.