Swift   发布时间:2022-03-31  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了swift语言IOS8开发战记22 Core Data3大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

    上一话我们定义了与coredata有关的变量和方法,做足了准备工作,这一话我们来试试能不能成功。首先打开上一话中生成的Info类,在其中引用头文件的地方添加一个@objc(Info),不然后面会报错,我也不知道为什么。 然后在viewController中添加代码如下代码来实现: import UIKit import CoreData class ViewController: UIV

上一话我们定义了与coredata有关的变量和方法,做足了准备工作,这一话我们来试试能不能成功。首先打开上一话中生成的Info类,在其中引用头文件的地方添加一个@objc(Info),不然后面会报错,我也不知道为什么。

然后在viewController中添加代码如下代码来实现:

import UIKit
import CoreData

class ViewController: UIViewController {
    var tempInfo: Info!
    override func viewDidLoad() {
        super.viewDidLoad()
        if let managementContext = (UIApplication.sharedApplication().delegate as
            AppDelegatE).managedObjectContext{
        tempInfo = NSEntityDescription.insertNewObjectForEntityForName("Info",inManagedObjectContext: managementContext) as Info
                //相当于取到了Info,可以进行赋值操作
                tempInfo.name = "cg"
                tempInfo.LOCATIOn = "xidian"
                //记得save
                var e: NSError?
                
                if managementContext.save(&E) != true {
                println("insert error \(e!.localizedDescription)")
                }
                
                if let managementContext = (UIApplication.sharedApplication().delegate as AppDelegatE).managedObjectContext{
                var fetchrequest = NSFetchrequest(entityName: "Info")
                    var result = managementContext.executeFetchrequest(fetchrequest,error: &E) as [Info]
                    
                    if e != nil {
                        println("fetch result error: \(e!.localizedDescription)")
                    } else {
                        for item: AnyObject in result {
                            let temp = item as Info
                            println("name: \(temp.Name),localtion: \(temp.LOCATIOn)")
                        }
                    }
                }
        }

    }

}
以上代码的作用是通过代理的方式,先向Info中插入一个实例的值,name属性为cg,LOCATIOn属性为xidian,然后再进行查询,把打印出来,运行后中控台显示如下:


有了插入和查询,下面实现更新操作,在上面的代码增加如下代码

                if let managementContext = (UIApplication.sharedApplication().delegate as AppDelegatE).managedObjectContext {
                var fetchrequest = NSFetchrequest(entityName: "Info")
                    fetchrequest.preDicate = NSPreDicate(format: "name = 'cg'",argumentArray: nil)
                    var result = managementContext.executeFetchrequest(fetchrequest,error: &E) as [Info]
                    
                    if e != nil {
                        println("fetch result error: \(e!.localizedDescription)")
                    } else {
                        for item: AnyObject in result {
                            let temp = item as Info
                            temp.name = "cggggg"
                            println("name: \(temp.Name),localtion: \(temp.LOCATIOn)")
                        }
                        managementContext.save(&E)
                    }
                
                }

以上代码的作用是把name为cg的实例的name改成cggggg,运行结果如下:

现在来实现删除的操作,与update的操作类似,在update代码的基础上把修改名字的代码改成:

@H_561_18@managementContext.deleteObject(temp) 就好了,现在我们试着删除名为cggggg的记录,可以看到cggggg已经不在了,在这就不截图了大家自己试试。

大佬总结

以上是大佬教程为你收集整理的swift语言IOS8开发战记22 Core Data3全部内容,希望文章能够帮你解决swift语言IOS8开发战记22 Core Data3所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。