NSArray에서 객체의 인덱스를 얻습니까?
다음과 같이 indexOfObject 메서드를 통해 배열의 인덱스를 얻으려고 하지만 인덱스를 테스트하기 위해 값을 기록하려고 할 때 가비지 값을 얻습니다. 테스트 목적으로 값이있는 배열을 가지고 {57,56,58..}
있습니다. 56
,
NSNumber *num = [NSNumber numberWithInteger:56];
NSInteger Aindex = [myArray indexOfObject:num];
NSLog(@" %d",Aindex);
내가 얻는 가치는 2323421
. 내가 뭘 잘못하고 있니 ??
에서 반환 된 인덱스는 indexOfObject
개체 발생에 대한 첫 번째 인덱스가됩니다. isEqual
방법을 사용하여 동등성을 테스트 합니다.
당신이 얻는 쓰레기 값은 아마도 NSNotFound
. 그것에 대해
테스트 해보 anIndex
십시오. 찾고있는 숫자가 아마도 배열에 없을 것입니다.
NSNumber *num=[NSNumber numberWithInteger:56];
NSInteger anIndex=[myArray indexOfObject:num];
if(NSNotFound == anIndex) {
NSLog(@"not found");
}
또는 다음을 확인하기 위해 배열의 내용을 기록하십시오.
NSLog(@"%@", myArray);
여러분,
배열에서 개체를 찾을 수없는 경우 indexOfObject 메서드는 '가비지'값을 반환하지 않습니다. 항목을 찾을 수없는 경우 많은 시스템에서 인덱스 -1을 반환합니다.
그러나 IOS에서는 indexOfObject가 UNSIGNED int (일명 NSUInteger)를 반환하기 때문에 반환 된 인덱스는 0보다 크거나 같아야합니다. 'zero'는 유효한 인덱스이기 때문에 우리 모두가 테스트 할 수있는 합의 된 상수 값을 반환하는 것 외에는 객체를 찾을 수 없음을 호출자에게 나타낼 방법이 없습니다. 합의 된이 상수 값을 NSNotFound라고합니다.
방법:
- (NSUInteger)indexOfObject:(id)anObject;
객체가 배열에 없으면 NSNotFound를 반환합니다. NSNotFound는 매우 큰 양의 정수입니다 (일반적으로 1에서 플랫폼의 최대 정수를 뺀 값).
NSNumber *num1 = [NSNumber numberWithInt:56];
NSNumber *num2 = [NSNumber numberWithInt:57];
NSNumber *num3 = [NSNumber numberWithInt:58];
NSMutableArray *myArray = [NSMutableArray arrayWithObjects:num1,num2,num3,nil];
NSNumber *num=[NSNumber numberWithInteger:58];
NSInteger Aindex=[myArray indexOfObject:num];
NSLog(@" %d",Aindex);
올바른 출력을 제공하는 것은 객체를 ur 배열에 저장하는 데 문제가있을 수 있습니다.
이 시도:
NSArray의 indexOfObject:
방법. 다음과 같은 :
NSUInteger fooIndex = [someArray indexOfObject: someObject];
Swift 및 선택 사항을 사용하는 경우 래핑되지 않았는지 확인하십시오. 선택 사항 인 개체의 인덱스는 검색 할 수 없습니다.
방금 확인했습니다. 나를 위해 잘 작동합니다. 어레이에 특정 번호가 있는지 확인하십시오. 요소가 없으면 이러한 가비지 값을 반환합니다.
indexOfObject methord는 문자열이 @ "Test"와 같고 @ "TEST"와 같은 경우 해당 배열에서 해당 문자열의 인덱스를 가져옵니다. 이제 긴 숫자와 같은 인덱스를 반환합니다.
참고 URL : https://stackoverflow.com/questions/7398141/getting-index-of-an-object-from-nsarray
'Programing' 카테고리의 다른 글
모호함을 통한 보안이 왜 나쁜 생각입니까? (0) | 2020.11.13 |
---|---|
이번 주와 달의 첫날을 얻는 방법은 무엇입니까? (0) | 2020.11.13 |
Dispose가 'using'블록에 대해 호출되지 않는 상황이 있습니까? (0) | 2020.11.13 |
{{object.field}} 존재 여부를 확인하지 않으면 오류 (0) | 2020.11.13 |
Ruby on Rails : 양식으로 배열 제출 (0) | 2020.11.13 |