Search code examples
objective-cintegernsrange

How to pull an integer value from NSRange?


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?


Solution

  • 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);