这是一个HitList
import UIKit import CoreData class ViewController: UIViewController,UITableViewDataSource { var names = [String]() var people = [NSManagedObject]() @IBOutlet weak var tableView: UITableView! override func viewWillAppear(animated: Bool) { super.viewWillAppear(animated) let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate let managedContext = appDelegate.managedObjectContext let fetchRequest = NSFetchRequest(entityName: "Person") do { let results = try managedContext.executeFetchRequest(fetchRequest) people = results as! [NSManagedObject] } catch let error as NSError { print("Could not fetch \(error),\(error.userInfo)") } } override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. title = "\"The List\"" // tableView.registerClass(UITableView.self, forCellReuseIdentifier: "Cell") } @IBAction func addName(sender: AnyObject) { var alert = UIAlertController(title: "New name", message: "Add a new name", preferredStyle: .Alert) let saveAction = UIAlertAction(title: "Save", style: .Default) { (action: UIAlertAction!) -> Void in let textField = alert.textFields!.first self.saveName(textField!.text!) self.tableView.reloadData() } let cancelAction = UIAlertAction(title: "Cancel", style: .Default) { (action: UIAlertAction!) -> Void in } alert.addTextFieldWithConfigurationHandler { (textField: UITextField!) -> Void in } alert.addAction(saveAction) alert.addAction(cancelAction) presentViewController(alert, animated: true, completion: nil) } func saveName(name: String) { let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate let managedContext = appDelegate.managedObjectContext let entity = NSEntityDescription.entityForName("Person", inManagedObjectContext: managedContext) let person = NSManagedObject(entity: entity!, insertIntoManagedObjectContext: managedContext) person.setValue(name, forKey: "name") do { try managedContext.save() people.append(person) } catch let error as NSError { print("Could not save\(error),\(error.userInfo)") } } func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return people.count } func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCellWithIdentifier("Cell")! as UITableViewCell let person = people[indexPath.row] cell.textLabel?.text = person.valueForKey("name") as! String? return cell } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } }