如何使用deleteCharactersInRange?

Cod*_*dey 4 string nsrange swift

我想调用方法"deleteCharactersInRange"但它不起作用.

这是苹果文档的摘录:

迅速

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)
Run Code Online (Sandbox Code Playgroud)

我收到此错误消息:

'String'没有名为'deleteCharactersInRange'的成员

Dar*_*ust 13

您引用的方法属于NSMutableString.但是既然你正在使用Swift而没有明确地创建一个,那么你就得到了一个Swift String.

如果你想在Swift上运行String,你需要使用str.removeRange而且使用相当笨拙Range:

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

  • 你甚至不需要直接调用`Range`的构造函数.相反,你可以这样做:`str.removeRange(str.startIndex .. <advance(str.startIndex,7))` (3认同)
  • 你必须使用`str.startIndex`和`advance`函数. (2认同)