我有这段代码可以逐行读取我的文件:
data = try String(contentsOfFile: localFilePath as String,
encoding: NSASCIIStringEncoding)
let myStrings = data.componentsSeparatedByCharactersInSet(NSCharacterSet.newlineCharacterSet())
array = myStrings[0].characters.split(){$0 == ","}.flatMap{
(Int(String.init($0).stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceCharacterSet())))}
这里我正在阅读文件的第一行,并将该行中的数字转换为[Int]
。
现在我想检查文件的下一行是否有任何数字/字母,但是当我尝试这样做时:myStrings[1]
它正确地给了我Index out of range
因为下一行是空的。
我的问题是,有没有办法检查文件中的下一行是否有任何数据,而不会出现此错误?
答案 0 :(得分:0)
如果您只执行myStrings [1]并且它已经显示“索引超出范围”,则可能是那里没有字符串(甚至不是空字符串)。您应该检查您尝试访问的字符串索引(在此示例中为1)是否不在myStrings数组的范围之外。 另一方面,如果您实际上稍后收到错误并且有一个可能为空的字符串,则可以使用isEmpty()来检查该错误。
答案 1 :(得分:0)
使用count
阵列上的myStrings
属性,首先检查您拥有的行数。这会告诉您数组包含多少项。