我对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
.......
}
}
我接下来要做什么?
答案 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
课程中可能会有更有意义的属性名称。