我有一個包含許多路徑對象的NSMutableArray路徑。如何知道一個NSMutableArray是否包含一個對象?
我會知道路徑中是否有特定的路徑。
我試着用:
if([paths containsObject:aPath]) {
return YES;
}
,但它不工作。
所以,我也試圖與謂詞:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF contains %@", path];
NSArray *filteredArray = [self.paths filteredArrayUsingPredicate:predicate];
但我有一個錯誤,控制檯說我路徑不是一個集合。
編輯:
我的路徑數組是:
2013-04-04 20:57:36.465 numbs[42781:617] paths (
"PATH: (\n 2,\n 2,\n 2,\n 5,\n 5,\n 6,\n 5,\n 4\n)",
"PATH: (\n 2,\n 2,\n 2,\n 5,\n 5,\n 6,\n 4,\n 5\n)",
"PATH: (\n 2,\n 2,\n 2,\n 5,\n 5,\n 4,\n 5,\n 6\n)",
"PATH: (\n 2,\n 2,\n 2,\n 5,\n 5,\n 4,\n 6,\n 5\n)"
)
路徑是:
PATH: (
2,
2,
2,
5,
5,
5,
6,
5,
4
)
編輯2:
我在Path.m
添加- (BOOL)isEqual:(id)other
{
return ([other isKindOfClass:[Path class]] &&
[[other arrayOfNode] isEqual:self.arrayOfNode] &&
[other somme] == self.somme &&
[[other result] isEqual:self.result] &&
[[other resultString] isEqual:self.resultString] &&
[[other wayArray] isEqual:self.wayArray]);
}
- (NSUInteger) hash;
{
return somme^[resultString hash]^[wayArray hash]^[arrayOfNode hash]^[result hash];
}
,並在我的控制器:
if([paths containsObject:aPath]) {
return YES;
}
但這種方法不工作過。
嘗試定義與塊的謂語。它可以幫助。 – holex 2013-04-04 16:07:49
什麼是Path對象?它是一個NSIndexPath?你的最初想法對我來說很合適,這取決於aPath如何實現isEqual: – danh 2013-04-04 16:28:54