В Swift 1.2 у меня есть это:
if let filePath = NSBundle.mainBundle().pathForResource("some", ofType: "txt"),
data = String(contentsOfFile: filePath, encoding: NSUTF8StringEncoding) {
for line in data.componentsSeparatedByCharactersInSet(NSCharacterSet.newlineCharacterSet()) {
// Do something
}
} else {
println("some.txt is missing")
}
В Swift 2 я больше не могу этого делать, потому что оба pathForResource
и contentsOfFile
могут бросать, а также возвращать опции. Я могу это исправить, но теперь это выглядит удивительно подробным:
do {
if let filePath = try NSBundle.... {
do {
if let data = try String.... {
for line in data..... {
// Do something
}
} else {
print("Nil data")
}
} catch {
print("contentsOfFile threw")
}
} else {
print("Nil pathForResource")
}
} catch {
print("pathForResource threw")
}
Я ожидаю, что что-то пропустил - любая помощь была оценена.