• 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)")
            }
        }
       
    }
  • 相关阅读:
    多线程之生产者和消费者模式
    python多线程之线程同步--锁
    python多线程之动态确定线程数
    python多线程之循环,调用函数等
    V8 引擎是如何工作的?
    AST抽象语法树——最基础的javascript重点知识,99%的人根本不了解
    字节码
    V8 引擎是如何工作的?
    JavaScript arguments对象
    V8 是怎么跑起来的 —— V8 中的对象表示
  • 原文地址:https://www.cnblogs.com/sallet/p/5292212.html
Copyright © 2020-2023  润新知