使用Swift 2.0将从在线csv文件接收的数据保存到Core Data中

时间:2015-10-14 13:30:42

标签: ios swift core-data swift2

我对Swift有点新意。所以我试图导入这个上传一个csv文件,其中包含一个英文单词列表及其相应的中文和泰文翻译。我在AppDelegate中创建了一个csv解析器,并使用print显示数据。但是,我无法在Coredata实体中保存数据。我有一个名为Words的简单核心数据实体,包含英文单词,中文单词,泰语单词。

这是我的代码:

func preloadData () {

    // Remove all the menu items before preloading
    //removeData()

    var error:NSError?
    let remoteURL = NSURL(string: "http://dethink.co/words.csv")!
    let wordsFromCsv = parseCSV(remoteURL, encoding: NSUTF8StringEncoding, error: &error)


    let context: NSManagedObjectContext = self.managedObjectContext


    for word in  wordsFromCsv! {
        var new_word = NSEntityDescription.insertNewObjectForEntityForName ("Words", inManagedObjectContext: context ) as NSManagedObject

    .......

   }
  }

我接下来要做什么?

2 个答案:

答案 0 :(得分:0)

了解更多信息会更好,特别是您的CSV数据结构是什么,但基本上您需要这样做:

// associate the values from your csv to the word istance
    new_word.englishwords = word.english
    new_word.chinesewords = word.chinese
    new_word.thaiwords = word.thaiwords

// end of for loop

最后保存您的上下文:

do {
       try context.save()
   } catch {
       print("Unresolved error")
 }

答案 1 :(得分:0)

看到您的数据如下所示:

mango,芒果,มะม่วง
apple,苹果,à¹à¸­à¸›à¹€à¸›à¸´à¹‰à¸¥
banana,香蕉,à¸à¸¥à¹‰à¸§à¸¢
milk,牛奶,นม
water,水,น้ำ
tea,茶,ชา
coffee,å’–å•¡,à¸à¸²à¹à¸Ÿ
eat,åƒ,à¸à¸´à¸™
drink,å–,ดื่ม
see,è§,เห็น
sit,å,นั่ง
stand,ç«™,ยื¸™

假设您的parseCSV函数(您没有共享)返回一个数组数组([[String]]) - 并假设您已生成一个名为{{1的NSManagedObject子类你可以按如下方式在循环中填充:

Word

保存在循环外部。显然,您的var newWord = NSEntityDescription.insertNewObjectForEntityForName("Words", inManagedObjectContext: context ) as! Word newWord.string = word[0] as? String newWord.firstWeirdString = word[1] as? String newWord.secondWeirdString = word[2] as? String 课程中可能会有更有意义的属性名称。