Created
June 23, 2014 19:46
-
-
Save michaelenger/1089771ebc3565a57c62 to your computer and use it in GitHub Desktop.
iOS Development Using Swift
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// | |
// 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