imist building app plistのランダムな見積もりが表示されていて、それをお気に入り(コアデータ)に保存することができます。コアデータが既に保存されているかどうかチェックします。
var quotesPlist: NSArray! = []
override func awakeFromNib() {
loadQuote()
}
func loadQuote(){
let path = NSBundle.mainBundle().pathForResource("quotesList", ofType: "plist")
quotesPlist = NSArray(contentsOfFile: path!)
quoteLbl.text = quotesPlist[Int(randomNumber())] as? String
}
SavedQuoteプロパティ:
@NSManaged var quote: String?
@NSManaged var creationDate: NSDate?
@NSManaged var uuid: String?
これはHomeVCです:そのはすでに
Quote.swiftを保存した場合、私はちょうどボタン変更を保存したい
func createQuoteFromNib() -> QuoteView! {
return NSBundle.mainBundle().loadNibNamed("QuoteView", owner: self, options: nil)[0] as? QuoteView
}
@IBAction func saveACTION(sender: UIBarButtonItem) {
if let label = currentQuote.quoteLbl.text where label != "" {
let app = UIApplication.sharedApplication().delegate as! AppDelegate
let context = app.managedObjectContext
let entity = NSEntityDescription.entityForName("SavedQuotes", inManagedObjectContext: context)!
let quote = SavedQuotes(entity: entity, insertIntoManagedObjectContext: context)
quote.quote = currentQuote.quoteLbl.text
quote.creationDate = NSDate()
quote.uuid = NSUUID().UUIDString
context.insertObject(quote)
do {
try context.save()
} catch let err as NSError {
print(err.debugDescription)
}
}
}
これは私のFavoritesVCです:
var quotesArray = [SavedQuotes]()
@IBOutlet weak var tableView: UITableView!
func fetchAndSetResults(){
let app = UIApplication.sharedApplication().delegate as! AppDelegate
let context = app.managedObjectContext
let fetchRequest = NSFetchRequest(entityName: "SavedQuotes")
let dateSort = NSSortDescriptor(key: "creationDate", ascending: false)
fetchRequest.sortDescriptors = [dateSort]
do {
let results = try context.executeFetchRequest(fetchRequest)
quotesArray = results as! [SavedQuotes]
} catch let err as NSError {
print(err.debugDescription)
}
}