Programing

NSArray에서 객체의 인덱스를 얻습니까?

lottogame 2020. 11. 13. 07:42
반응형

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

반응형