How to capture last 4 characters from NSString

Viewed 25013

I am accepting an NSString of random size from a UITextField and passing it over to a method that I am creating that will capture only the last 4 characters entered in the string.

I have looked through NSString Class Reference library and the only real option I have found that looks like it will do what I want it to is

- (void)getCharacters:(unichar *)buffer range:(NSRange)aRange

I have used this once before but with static parameters 'that do not change', But for this implementation I am wanting to use non static parameters that change depending on the size of the string coming in.

So far this is the method I have created which is being passed a NSString from an IBAction else where.

- (void)padString:(NSString *)funcString
{

    NSString *myFormattedString = [NSString stringWithFormat:@"%04d",[funcString intValue]]; // if less than 4 then pad string
    //   NSLog(@"my formatedstring = %@", myFormattedString);

    int stringLength = [myFormattedString length]; // captures length of string maybe I can use this on NSRange?


    //NSRange MyOneRange = {0, 1}; //<<-------- should I use this? if so how?

}
3 Answers

You can check this function in Swift 5:

func subString(from myString: NSString, length: Int) {
    let myNSRange = NSRange(location: myString.length - length, length: length)
    print(myString.substring(with: myNSRange))
}
subString(from: "Menaim solved the issue", length: 4) // Output: ssue
Related