Reputation: 1201
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?
Upvotes: 7
Views: 4875
Reputation: 14068
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.
Upvotes: 0
Reputation: 726599
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);
Upvotes: 4