先日android/javaのローカルストレージへの読み書き処理をまとめたので、
次はiphone/swiftの処理をまとめた。
Create/update処理
[swift]
// class定義
import Foundation
import CoreData
@objc(testtable)
class testtable: NSManagedObject {
@NSManaged var id: NSNumber
@NSManaged var somenumber: NSNumber
}
func writeData(Id:NSInteger, somenumber:NSInteger){
// CoreDataへの書き込み処理.
let appDel: AppDelegate = UIApplication.shared.delegate as! AppDelegate
let myContext: NSManagedObjectContext = appDel.managedObjectContext!
let myEntity: NSEntityDescription! = NSEntityDescription.entity(forEntityName: “testtable”, in: myContext)
let newData = testtable(entity: myEntity, insertInto: myContext)
newData.id = NSNumber(value: Id)
if somenumber == 0 {
print(“no”)
newData.somenumber = 0
}
else{
print(“plus”)
newData.somenumber = NSNumber(value: somenumber + 1)
}
do {
try myContext.save()
} catch _ {
}
}
[/swift]
Read処理
[swift]
func readData( Id:NSInteger ) -> NSArray{
let app: AppDelegate = UIApplication.shared.delegate as! AppDelegate
let categoryContext: NSManagedObjectContext = app.managedObjectContext!
let request = NSFetchRequest
request.returnsObjectsAsFaults = false
request.predicate = NSPredicate(format: “id = %d”, Id)
let results : Array = try! categoryContext.fetch(request)
if (results.count > 0 ) {
let obj = results[0] as! NSManagedObject
}
else{
let completetimes:NSInteger = 0
writeData(Id: Id, somenumber: somenumber)
}
return results as NSArray
}
[/swift]
これでクラウドにデータをもたせるのではなく、ユーザのスマートフォンにデータを保存する方法ができる。
Leave a Reply