Search code examples
swiftnsrange

Convert NSRange in Objective-C to Swift


How do I convert this to Swift:

NSString *searchString = [NSString stringWithFormat:@"%@", @"Apple_HFS "];
NSRange range = [tempString rangeOfString:searchString];
NSUInteger *idx = range.location + range.length;

Thanks


Solution

  • If you use String, you can just reference endIndex:

    let searchString: String = "Apple_HFS "
    if let range: Range<String.Index> = tempString.rangeOfString(searchString) {
        let index = range.endIndex
        let stringAfter = tempString.substringFromIndex(index)
        // do something with `stringAfter`
    } else {
        // not found
    }
    

    I included the types so you could see what's going on, but generally I'd just write:

    let searchString = "Apple_HFS "
    if let range = tempString.rangeOfString(searchString) {
        let stringAfter = tempString.substringFromIndex(range.endIndex)
        // do something with `stringAfter`
    } else {
        // not found
    }