28

Trying to get substring of String and append it to array of Strings:

var stringToSplit = "TEST TEXT"
var s = [String]()
let subStr = anotherString[0 ..< 6]
s.append(subStr) // <---- HERE I GET THE ERROR

error desc

MBH
  • 16,271
  • 19
  • 99
  • 149

2 Answers2

45

As @Leo Dabus mentioned, you need to initialize a new String with your substring:

Change:

s.append(subStr)

To:

s.append(String(subStr))
MBH
  • 16,271
  • 19
  • 99
  • 149
Rashwan L
  • 38,237
  • 7
  • 103
  • 107
  • Awesome - I was having difficulty figuring out how to convert a String.subsequence but this is simple and effective. Take my upvote – vikzilla Jan 11 '18 at 02:57
2

my two cents for serro in different context. I was trying to get an array of "String" splitting a string. "split" gives back "Substring", for efficiency reason (as per Swift.org litre).

So I ended up doing:

let buffer = "one,two,three"
let rows = buffer.split(separator:",")

let realStrings = rows.map { subString -> String in
    return String(subString)
}

print(realStrings)

Ape can help someone else.

ingconti
  • 10,876
  • 3
  • 61
  • 48