code

NSMutableArray 또는 다른 컨테이너에 NSRange를 어떻게 저장합니까?

codestyles 2020. 12. 10. 20:21
반응형

NSMutableArray 또는 다른 컨테이너에 NSRange를 어떻게 저장합니까?


내가 원하는 것은 다음과 같습니다.

NSRange r = NSMakeRange(0,5);
id a = [NSMutableArray a];
[a addObject: r]; // but NSRange is not a NSObject *

부울을 사용하면 다음과 같은 코드를 사용합니다.

[a addObject: [NSNumber numberWithBool: YES]];

또는 정수로 :

[a addObject: [NSNumber numberWithInteger: 3]];

그래서 a와 동등한 것은 무엇 NSRange입니까? 내가 정말로하고 싶지 않은 것은 NSObject이것을 달성하기 위해 내 자신의 하위 클래스를 만드는 것 입니다. 분명히 Apple이 이미 제공 한 방법이 있습니까?


NSValue의+valueWithRange: . 범위 구조를 다시 검색하려면 속성을rangeValue 사용하십시오 .

[a addObject:[NSValue valueWithRange:r]];
...

NSRange r = a[4].rangeValue;

[NSValue valueWithRange:r];

다음을 사용하여 다시 가져 오십시오.

NSRange r = [rangeObject rangeValue];

NSRange속성 목록 에을 저장해야하는 경우 기능을 사용 하여을 NSRange전환 할 수도 있습니다. 그런 다음 함수를 사용하여 해당 문자열을 범위로 되돌릴 수 있습니다 .NSStringNSStringFromRangeNSRangeFromString


한 가지 다른 옵션은 NSIndexSet다음에 사용하려는 방법에 따라 해당 범위를에 추가하는 것입니다.

참고 URL : https://stackoverflow.com/questions/3999167/how-do-i-store-an-nsrange-in-a-nsmutablearray-or-other-container

반응형