zoukankan      html  css  js  c++  java
  • first core data

    //
    //  TableViewController.swift
    //  TestCoreData
    //
    //
    import CoreData
    
    import UIKit
    
    class TableViewController: UITableViewController {
        //懒加载 需指定 该变量的类型是 AppDelegate
        lazy var appDelegate:AppDelegate = {
            let app = UIApplication.sharedApplication().delegate as! AppDelegate
            return app
        }()
    //    var peoples = [NSManagedObject]()
        var peoples = [Person]()
    
        // MARK: - add a name
        @IBAction func add(sender: UIBarButtonItem) {
            
            let alert = UIAlertController(title: "add a name", message: "", preferredStyle: .Alert)
            let addAction = UIAlertAction(title: "add", style: UIAlertActionStyle.Default) { (action :UIAlertAction) -> Void in
                
                let name = alert.textFields![0].text
                let age = alert.textFields![1].text! as NSString
                self.saveName(name!,age: age.integerValue)
                let indexPath = NSIndexPath(forRow: self.peoples.count-1, inSection: 0)
                self.tableView.insertRowsAtIndexPaths([indexPath], withRowAnimation: .Left)
                
            }
            
            let cancelAction = UIAlertAction(title: "cancel", style: .Default, handler: nil)
            
            alert.addAction(addAction)
            alert.addAction(cancelAction)
            
            alert.addTextFieldWithConfigurationHandler(nil)
            alert.addTextFieldWithConfigurationHandler(nil)
            
            self.presentViewController(alert, animated: true, completion: nil)
            
        }
        func saveName(name:String,age:Int){
            let context = appDelegate.managedObjectContext
            
            let person = NSEntityDescription.insertNewObjectForEntityForName("Person", inManagedObjectContext: context) as! Person;
            person.name = name
            person.age = age
            
    //        let entity = NSEntityDescription.entityForName("Person", inManagedObjectContext: context)
    //        let person = NSManagedObject(entity: entity!, insertIntoManagedObjectContext: context)
            
    //        person(name, forKey: "name")
            
            do{
                try context.save()
                peoples.append(person)
            }catch let error as NSError{
                print("could not save object(error) , (error.userInfo)")
            }
        
        }
    
        override func didReceiveMemoryWarning() {
            super.didReceiveMemoryWarning()
        }
    
        // MARK: - Table view data source
    
        override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
            return 1
        }
    
        override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
            return peoples.count
        }
    
        
        override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
            let cell = tableView.dequeueReusableCellWithIdentifier("mycell", forIndexPath: indexPath)
    //        cell.textLabel?.text = peoples[indexPath.row].valueForKey("name") as? String
            let name = peoples[indexPath.row].name
            let age = peoples[indexPath.row].age
            cell.textLabel?.text = "(name!) -----> (age!) 岁"
            return cell
        }
    
        override func viewDidLoad() {
            self.title = "name list"
            let context = appDelegate.managedObjectContext
            let request = NSFetchRequest(entityName: "Person")
            do{
    //            let result = try context?.executeFetchRequest(request) as! [NSManagedObject]
    //            self.peoples = result
                let result = try context.executeFetchRequest(request) as! [Person]
                self.peoples = result
            } catch let error as NSError{
                print("could not fecth (error) , (error.userInfo)")
            }
        }
       
    }
  • 相关阅读:
    C++ template —— 类型区分(十一)
    C++ template —— 表达式模板(十)
    C++ template —— template metaprogram(九)
    C++ template —— 模板与继承(八)
    [转]2015有得有悟,2016笨鸟起飞
    C++ template —— trait与policy类(七)
    protobuf与json相互转换的方法
    如何通过卡面标识区分SD卡的速度等级
    MyEclipse设置字体和背景的方法
    JAVA中日期转换和日期计算的方法
  • 原文地址:https://www.cnblogs.com/sallet/p/5292212.html
Copyright © 2011-2022 走看看