Skip to content
This repository was archived by the owner on Sep 15, 2025. It is now read-only.

Commit f89604a

Browse files
committed
Entity Item model
1 parent 0a32097 commit f89604a

File tree

1 file changed

+68
-2
lines changed

1 file changed

+68
-2
lines changed

iOS8-Swift-TableView-CoreData-Example/Item.swift

Lines changed: 68 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,74 @@
99
import Foundation
1010
import CoreData
1111

12+
// MODEL
1213
class Item: NSManagedObject {
14+
15+
@NSManaged var name: String
16+
17+
/// Function to initialize a new Item
18+
convenience init(name: String, inManagedObjectContext managedObjectContext: NSManagedObjectContext) {
19+
let entity = NSEntityDescription.entityForName("Item", inManagedObjectContext: managedObjectContext)!
20+
self.init(entity: entity, insertIntoManagedObjectContext: managedObjectContext)
21+
self.name = name
22+
}
23+
24+
/// Function to get all CoreData values
25+
///
26+
/// :param: managedObjectContext CoreData Connection
27+
///
28+
class func fetchAll(managedObjectContext: NSManagedObjectContext) -> [Item] {
29+
let listagemCoreData = NSFetchRequest(entityName: "Item")
30+
31+
// Sort alphabetical by field "name"
32+
let orderByName = NSSortDescriptor(key: "name", ascending: true, selector: "caseInsensitiveCompare:")
33+
listagemCoreData.sortDescriptors = [orderByName]
34+
35+
// Get items from CoreData
36+
return managedObjectContext.executeFetchRequest(listagemCoreData, error: nil) as? [Item] ?? []
37+
}
38+
39+
/// Function to search item by name
40+
///
41+
/// :param: name Item name
42+
/// :param: managedObjectContext CoreData Connection
43+
///
44+
class func search(name: String, inManagedObjectContext managedObjectContext: NSManagedObjectContext) -> Item? {
45+
let fetchRequest = NSFetchRequest(entityName: "Item")
46+
fetchRequest.predicate = NSPredicate(format: "name = %@", name)
47+
48+
let result = managedObjectContext.executeFetchRequest(fetchRequest, error: nil) as? [Item]
49+
return result?.first
50+
}
51+
52+
/// Function to check duplicate item
53+
///
54+
/// :param: name Item name
55+
/// :param: managedObjectContext CoreData Connection
56+
///
57+
class func checkDuplicate(name: String, inManagedObjectContext managedObjectContext: NSManagedObjectContext) -> Bool {
58+
return search(name, inManagedObjectContext: managedObjectContext) != nil
59+
}
1360

14-
@NSManaged var name: String
15-
61+
/// Function to delete a item
62+
///
63+
/// :param: managedObjectContext CoreData Connection
64+
///
65+
func destroy(managedObjectContext: NSManagedObjectContext) {
66+
managedObjectContext.deleteObject(self)
67+
}
68+
69+
/// Function to save CoreData values
70+
///
71+
/// :param: managedObjectContext CoreData Connection
72+
///
73+
func save(managedObjectContext: NSManagedObjectContext) {
74+
var error: NSErrorPointer = nil
75+
76+
if(managedObjectContext.save(error)) {
77+
if (error != nil) {
78+
println("Error on save: \(error.debugDescription)")
79+
}
80+
}
81+
}
1682
}

0 commit comments

Comments
 (0)