Ответ 1
Я не знаю ни одного API, который делает это. К счастью, написать собственное - это простое упражнение:
extension String {
func taking(first: Int) -> String {
if first <= 0 {
return ""
} else if let to = self.index(self.startIndex,
offsetBy: first,
limitedBy: self.endIndex) {
return self.substring(to: to)
} else {
return self
}
}
}
Снятие с конца похоже.
Найти полный код (включая варианты) и тесты здесь.