나는 NSMutableArray
pages
에 여러 개체 (인스턴스 Page
)가 있습니다. 각 Page
인스턴스에는 UUID와 기타 속성 (예 : 내용)이 있습니다. page
이 변경되면 UUID를 제외한 모든 항목이 변경 될 수 있습니다. 변경 후 Page
의 색인을 pages
에 찾으려면 indexOfObject:
을 사용하고 싶습니다. 나는 내가 찾고 인덱스를 식별하는 UUID를 사용하여이 잘 작동이 할 수있는 더 우아한 방법이 있는지해당 개체 속성 중 하나를 사용하여 배열에서 개체 색인 찾기
NSMutableArray *uuids = [[NSMutableArray alloc] init];
for (int i = 0; i < [self.pages count]; i++) {
[uuids addObject:[[pages objectAtIndex:i] uuid]];
}
NSUInteger indexOfPage = [uuids indexOfObject:page.uuid];
내 질문입니다. 실제로 필요한 것은 주어진 UUID를 가진 pages
에있는 Page
오브젝트의 인덱스입니다.
- (NSIndexSet *)indexesOfObjectsPassingTest:(BOOL (^)(id obj, NSUInteger idx, BOOL *stop))predicate
또는 indexOfAccessibilityElement:<#(id)#>
이 있습니다. 그러나이 중 하나가 내 문제를 해결하는 데 어떻게 도움이 될지 잘 모르겠습니다.
predicate = [NSPredicate predicateWithFormat:[NSString stringWithFormat:@"(UUID == %@)", searchUUID]];
filteredArray = [pages filteredArrayUsingPredicate:predicate];
그리고 당신은 objectAtIndex에 있어야 개체, 일단 : 필터링 된 배열에 공을 당신의 UUID를 가정
감사합니다. Hejazi. isKindOfClass가 정말로 필요한지 궁금합니다. 나는 Ahsley 's를 구현했으며 잘 작동하지만 아마도 당신의 대답은 정확하고 보호받는 답입니다. 왜 isKindOfClass를 검사하는지 설명 할 수 있습니까? –
방금 경우입니다. 그래서 내가'uuid'에 접근 할 때 그것이 있다는 것을 알았고 다른 클래스의 객체와 비교하지 않을 것입니다. – Hejazi