Codey Codey - 3 months ago 40
Swift Question

deleteCharactersInRange - Swift

I want do call the method "deleteCharactersInRange" but it doesn't work.

This is an expert from Apples Documentation


Swift

func deleteCharactersInRange(_ aRange: NSRange)


var day = ""

let stringRange:NSRange = NSMakeRange(0, 4)
day = day.deleteCharacterInRange(stringRange)


// I've also tried this, because in the Documentation
// I can't see wether the method is void or returns a String

day.deleteCharacterInRange(stringRange)


I get this error message:

'String' does not have a member named 'deleteCharactersInRange'

Answer

The method you're citing belongs to NSMutableString. But since you're using Swift and haven't explicitly created one, you get a Swift String.

If you want to operate on Swift String, you need to use str.removeRange and the rather awkward to use Range:

var str = "Hello, playground"
str.removeRange(Range<String.Index>(start: str.startIndex, end:advance(str.startIndex, 7)))
// "playground"