【发布时间】:2015-07-20 09:20:59
【问题描述】:
我的代码是这样的:
import Foundation
import CoreData
import UIKit
class BARCODEDIMENSION: NSManagedObject {
@NSManaged var barcode: String
@NSManaged var catid: Int32
@NSManaged var favorite: Bool
@NSManaged var name: String
@NSManaged var subcatid: Int32
class func getProducts(moc: NSManagedObjectContext) {
var url: NSURL! = NSURL(string: "link")
var request = NSURLRequest(URL: url)
var response: NSURLResponse ?
var error: NSError ?
var data: NSData ? = NSURLConnection.sendSynchronousRequest(request, returningResponse: & response, error: & error)
if let data: NSData = NSURLConnection.sendSynchronousRequest(request, returningResponse: & response, error: & error) {
var parsingError: NSError ?
if
let rateDictionary = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: & parsingError) as ? NSArray {
for i in 0.. < rateDictionary.count {
let row: NSDictionary = rateDictionary[i] as!NSDictionary;
var name: String = row["name"] as!String
var catid: Int32 = Int32(row["catid"] !.integerValue)
var subcatid: Int32 = Int32(row["subcatid"] !.integerValue)
var barcode: String = row["barcode"] as!String
var favorite: Bool = false
insertBarcodeDimension(moc, barcode: barcode, catid: catid, favorite: favorite, name: name, subcatid: subcatid)
}
}
}
}
class func insertBarcodeDimension(moc: NSManagedObjectContext, barcode: String, catid: Int32, favorite: Bool, name: String, subcatid: Int32) - > BARCODEDIMENSION {
let newItem = NSEntityDescription.insertNewObjectForEntityForName("BARCODEDIMENSION", inManagedObjectContext: moc) as!BARCODEDIMENSION
newItem.barcode = barcode
newItem.name = name
newItem.catid = catid
newItem.subcatid = subcatid
newItem.favorite = favorite
var error: NSError ?
if (moc.save( & error)) {
println(error ? .localizedDescription)
}
return newItem
}
}
在上面的代码中,当我调用 getProducts(moc) 函数时,您可以看到。它是一一添加的。我通过这种方式成功地将项目添加到核心数据中。但是速度有问题。一个一个地添加例如 20000 个项目太慢了。我想知道是否有另一种方法可以将数组直接添加到 rateDictionary 上已经采用的核心数据中。
【问题讨论】:
-
核心数据编程指南有一整章是关于“高效导入数据”的。这可能是一个很好的起点......
-
我已经读过,但我不明白。抱歉,因为我开始在 swift 上编写代码。如果有例子就更好了。
-
你最好学习如何至少阅读 Objective-C。所有的框架仍然是用 Objective-C 编写的,如果你不能阅读它们,你将很难过。现在就消耗能量。
-
你说的都是真的,但现在我应该紧急去做这就是我在这里问的原因。 Objective-C 或 Swift 也不是我的工作。我只是在尝试一些东西。在这个小项目之后,我不想再看它了。正如我所说,这很紧急,所以如果你能帮助我,谢谢你。
-
这个网站是为寻求帮助解决问题的人准备的。它不是一个供人们为您编写代码的网站。如果你懒得花精力去学习它,那我们为什么还要费心去帮助你呢?