Last active
August 29, 2015 14:19
-
-
Save matsuhisa/ab66e8b940feedaa66a6 to your computer and use it in GitHub Desktop.
Swift で CoreData の必要な初期データー(マスターデータ)を用意する ref: http://qiita.com/matsuhisa@github/items/741d7b1c2541ea6fc68d
This file contains 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
func initMasters() { | |
println("initMasters ------------") | |
// plist の読み込み | |
let path:NSString = NSBundle.mainBundle().pathForResource("Masterdata", ofType: "plist")! | |
var masterDataDictionary:NSDictionary = NSDictionary(contentsOfFile: path) | |
let app: AppDelegate = UIApplication.sharedApplication().delegate as AppDelegate | |
let categoryContext: NSManagedObjectContext = app.managedObjectContext! | |
for(var i = 1; i<=masterDataDictionary.count; i++) { | |
let index_name: String = "Category" + String(i) | |
var item: AnyObject = masterDataDictionary[index_name]! | |
println(item["name"]) | |
let categoryEntity: NSEntityDescription! = NSEntityDescription.entityForName( | |
"Categories", | |
inManagedObjectContext: categoryContext | |
) | |
var new_data = NSManagedObject(entity: categoryEntity, insertIntoManagedObjectContext: categoryContext) | |
//new_data.name = item["name"] as String | |
new_data.setValue(item["name"] as String, forKey: "name") | |
var error: NSError? | |
categoryContext.save(&error) | |
} | |
println("------------") | |
} |
This file contains 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
override func viewDidLoad() { | |
super.viewDidLoad() | |
var results:NSArray = readData() | |
if(results.count == 0) { | |
// 初期データーの投入 | |
initMasters() | |
results = readData() | |
} | |
} |
This file contains 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
// ViewController.swift | |
// TestAppCoreDataInitApp01 | |
import UIKit | |
import CoreData | |
class ViewController: UIViewController { | |
override func viewDidLoad() { | |
super.viewDidLoad() | |
var results:NSArray = readData() | |
if(results.count == 0) { | |
// 初期データーの投入 | |
initMasters() | |
results = readData() | |
} | |
} | |
override func didReceiveMemoryWarning() { | |
super.didReceiveMemoryWarning() | |
// Dispose of any resources that can be recreated. | |
} | |
func readData() -> NSArray{ | |
println("readData ------------") | |
let app: AppDelegate = UIApplication.sharedApplication().delegate as AppDelegate | |
let categoryContext: NSManagedObjectContext = app.managedObjectContext! | |
let categoryRequest: NSFetchRequest = NSFetchRequest(entityName: "Categories") | |
var results: NSArray! = categoryContext.executeFetchRequest(categoryRequest, error: nil) | |
for data in results { | |
println("------------") | |
println(data.name?) | |
println("------------") | |
} | |
return results | |
} | |
func initMasters() { | |
println("initMasters ------------") | |
// plist の読み込み | |
let path:NSString = NSBundle.mainBundle().pathForResource("Masterdata", ofType: "plist")! | |
var masterDataDictionary:NSDictionary = NSDictionary(contentsOfFile: path) | |
let app: AppDelegate = UIApplication.sharedApplication().delegate as AppDelegate | |
let categoryContext: NSManagedObjectContext = app.managedObjectContext! | |
for(var i = 1; i<=masterDataDictionary.count; i++) { | |
let index_name: String = "Category" + String(i) | |
var item: AnyObject = masterDataDictionary[index_name]! | |
println(item["name"]) | |
let categoryEntity: NSEntityDescription! = NSEntityDescription.entityForName( | |
"Categories", | |
inManagedObjectContext: categoryContext | |
) | |
var new_data = NSManagedObject(entity: categoryEntity, insertIntoManagedObjectContext: categoryContext) | |
//new_data.name = item["name"] as String | |
new_data.setValue(item["name"] as String, forKey: "name") | |
var error: NSError? | |
categoryContext.save(&error) | |
} | |
println("------------") | |
} | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment