【问题标题】:Got fatal error: Cannot index empty buffer while getting data from .csv file出现致命错误:从 .csv 文件获取数据时无法索引空缓冲区
【发布时间】:2015-09-06 09:14:23
【问题描述】:

我正在尝试使用This 第三方库从users.csv 文件中获取数据,因此我从该库中添加CSV.swift 文件并添加users.csv,其中包含以下数据:

id,name,age
1,Alice,18
2,Bob,19
3,Charlie,20

我尝试从这个.csv 文件中获取数据,正如该库描述中提到的那样:

override func viewDidLoad() {
    super.viewDidLoad()
    let csvURL = NSURL(string: "users.csv")
    var error: NSErrorPointer = nil
    let csv = CSV(contentsOfURL: csvURL!, error: error)!

    // Rows
    let rows = csv.rows
    let headers = csv.headers  //=> ["id", "name", "age"]
    let alice = csv.rows[0]    //=> ["id": "1", "name": "Alice", "age": "18"]
    let bob = csv.rows[1]      //=> ["id": "2", "name": "Bob", "age": "19"]

    // Columns
    let columns = csv.columns
    let names = csv.columns["name"]  //=> ["Alice", "Bob", "Charlie"]
    let ages = csv.columns["age"]    //=> ["18", "19", "20"]
}

但我在行出现错误:let alice = csv.rows[0],控制台中的错误是:fatal error: Cannot index empty buffer 我不明白这里有什么问题。 这是我项目的截图:http://imgur.com/l3gqt2j

请帮帮我。

【问题讨论】:

  • 可以看到 rows 数组中没有元素。所以它肯定会崩溃
  • 那么解决方案是什么? bcz 我做了同样的图书馆描述中提到的事情。
  • 我需要数组中的值
  • 打印错误对象,它会告诉你失败的原因。您确定该 CSV 文件中有数据吗?
  • 是的,我确定并且错误打印了这个:0x0000000000000000

标签: ios arrays csv swift xcode6


【解决方案1】:

问题是以下代码无法找到您所引用的文件:

let csvURL = NSURL(string: "users.csv")

将其更改为:

let csvURL = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("users", ofType: "csv")!)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-27
    • 1970-01-01
    • 2016-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多