I have a custom keyboard and I have to perform backspace action on textview having nsmutableattributed string as a text (combination of character and nstextattachments)
As per Moxy: if your last character is large enough not to fit within a single UTF-16 unit then Dave's method will just truncate the description of that character. Emojis are an example but there are a bunch more.
So you'll more likely want:
[string deleteCharactersInRange:
[string.string rangeOfComposedCharacterSequenceAtIndex:string.length - 1]]