Skip to content

Instantly share code, notes, and snippets.

@michaelenger
Created June 23, 2014 19:46
Show Gist options
  • Save michaelenger/1089771ebc3565a57c62 to your computer and use it in GitHub Desktop.
Save michaelenger/1089771ebc3565a57c62 to your computer and use it in GitHub Desktop.
iOS Development Using Swift
//
// Note.swift
// Example Notes
//
// Created by Michael Enger on 21/06/14.
// Copyright (c) 2014 Michael Enger. All rights reserved.
//
import UIKit
import CoreData
@objc(Note)
class Note: NSManagedObject {
@NSManaged var content: String
@NSManaged var created: NSDate
// #praga mark Instance methods
func delete() -> Bool
{
self.managedObjectContext.deleteObject(self)
return self.managedObjectContext.save(nil)
}
func reset()
{
self.managedObjectContext.rollback()
}
func save() -> Bool
{
return self.managedObjectContext.save(nil)
}
// #praga mark Class methods
class func _context() -> NSManagedObjectContext
{
let appDelegate: AppDelegate = (UIApplication.sharedApplication().delegate as AppDelegate)
return appDelegate.managedObjectContext
}
class func _fetch(request: NSFetchRequest) -> NSArray
{
let managedObjectModel: NSManagedObjectModel = self._context().persistentStoreCoordinator.managedObjectModel
return Note._context().executeFetchRequest(request, error:nil) as NSArray
}
class func all() -> Note[]
{
let request : NSFetchRequest = NSFetchRequest(entityName: "Note")
request.returnsObjectsAsFaults = false
request.sortDescriptors = [NSSortDescriptor(key: "content", ascending: true)]
let results: NSArray = Note._fetch(request)
var objects: Note[] = []
for (var i = 0; i < results.count; i++) {
objects.append(results[i] as Note)
}
return objects
}
class func create() -> Note
{
let object: Note = NSEntityDescription.insertNewObjectForEntityForName("Note", inManagedObjectContext:Note._context()) as Note
object.created = NSDate.date()
return object
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment