我目前正在使用Xcode 6 beta 7,并决定在创建项目后我需要CoreData.我已经看过一些已经问过这个目标C的问题以及关于这个主题的观看视频,但我似乎得到了同样的错误.至于我对CoreData框架本身的使用,我很确定它是正确的,因为我创建了另一个空项目(检查了CoreData框)并遵循相同的实现,它就像一个魅力,但可能有些不对劲我是在那里做.以下是我在Swift项目中实现CoreData的步骤.
第1步:我通过"Build Phase"下的"Link Binary with Libraries"选项卡添加了CoreData框架
第2步:然后我去了我需要实现CoreData的任何.swift文件(appDelegate.swift和现在的另一个文件)并添加了以下行:
import CoreData
Run Code Online (Sandbox Code Playgroud)
到顶部.
第3步:我创建了一个名为"cData"的实体的数据列表,然后为它创建了一个名为"data.swift"的类.这是data.swift:
import UIKit
import CoreData
@objc( data )
class data: NSManagedObject {
@NSManaged var something : String
}
Run Code Online (Sandbox Code Playgroud)
第4步:我编写代码实际将数据保存在另一个文件中:
@IBAction func useCoreData(sender: AnyObject)
{
let AD : AppDelegate = UIApplication.sharedApplication().delegate as AppDelegate
let ct : NSManagedObjectContext = AD.managedObjectContext!
let ent = NSEntityDescription.entityForName( "CData", inManagedObjectContext: ct )
var dat = data( entity: ent!, insertIntoManagedObjectContext: ct )
dat.something = someTextField.text
ct.save( nil )
println(dat)
}
Run Code Online (Sandbox Code Playgroud)
第5步:我认为这是搞砸的地方,尽管我可能错了.我在一个单独的Mac上创建了一个新项目(所以我可以将它命名为同一个东西)并检查CoreData框.然后我将整个appDelegate.swift从这个项目复制到我当前的项目中.这是我的appDelegate.swift:
import UIKit
import …Run Code Online (Sandbox Code Playgroud)