I have an NSRange and need to break a string into two substrings on either side of this NSRange. How do I get an integer value (like the index) out of an NSRange?
How to pull an integer value from NSRange?
Asked Answered
NSRange
struct consists of two integers - the location
and the length
.
typedef struct _NSRange {
NSUInteger location;
NSUInteger length;
} NSRange;
It looks like location
and location+length
are the two expressions that you are looking for - the ranges for the left and right substring are as follows:
NSRange prefixRange = NSMakeRange(0, myRange.location);
NSUInteger pos =myRange.location+myRange.length;
NSRange suffixRange = NSMakeRange(pos, myString.length - pos);
I know this question is old, but in Swift 4 (and perhaps earlier) there are new upperBound
and lowerBound
convenience properties on NSRange
:
print(myRange) // Range: {13, 4}
range.lowerBound // 13
range.upperBound // 17
Hopefully that helps someone else.
© 2022 - 2024 — McMap. All rights reserved.