多くの Path オブジェクトを含む NSMutableArray Paths があります。
特定のパスが Paths にあるかどうかはわかります。
私は試しました:
if([paths containsObject:aPath]) {
return YES;
}
しかし、うまくいきません。
だから、私も Predicates を試しました:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF contains %@", path];
NSArray *filteredArray = [self.paths filteredArrayUsingPredicate:predicate];
しかし、エラーが発生しました。コンソールに、Paths はコレクションではないと表示されます。
編集 :
私のパスの配列は次のとおりです。
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;
}
しかし、この方法もうまくいきません。