我想將對象數組保存到coreData中,但是當我使用storeWord()方法時,它總是隻存放在最後一個對象的數組中,而我想把對象數組存儲在,但我不知道是什麼問題,有人可以幫我嗎?謝謝總是保存最後一個對象
這裏是我的objectArray:
var wordArray:[Word] = [
Word(word: "abacus", pronounce: "ˋæbəkəs", translate: "算盤", image: "abacus.jpg", visited: false),
Word(word: "abbey", pronounce: "ˋæbɪ", translate: "修道院", image: "abbey.jpg", visited: false),
Word(word: "ache", pronounce: "ek", translate: "痛", image: "ache.jpg", visited: false)
]
空CoreData陣列:
var words:[WordMO] = []
選擇和存儲功用:
override func viewDidLoad() {
super.viewDidLoad()
storeWord(wordArray: wordArray)
getWord()
}
func getContext() -> NSManagedObjectContext {
let appDelegate = UIApplication.shared.delegate as! AppDelegate
return appDelegate.persistentContainer.viewContext
}
func storeWord(wordArray:[Word]) {
let context = getContext()
var word:WordMO!
word = WordMO(context: getContext())
for item in wordArray {
word.word = item.word
word.pronounce = item.pronounce
word.translate = item.translate
word.visited = item.visited
if let wordImage = UIImage(named: item.image!) {
if let imageData = UIImageJPEGRepresentation(wordImage,1.0) {
word.image = NSData(data: imageData)
}
}
words.append(word)
}
do {
try context.save()
print("success")
} catch {
print(error)
}
}
您需要分配'WordMO' * *裏面for循環 – Paulw11
@ Paulw11I已經更新了我的代碼,但還是沒有解決問題,能不能幫我看看,如果我改變了對不對? –
你需要同時在alloc循環內和alloc。像「let word = WordMO(context:context)」 –