我花了很多时间试图解决这个问题并且没有在哪里。
我有一个具有NSDate属性的实体,该属性成功保存。
如何在地球上从商店(仅年份部分)获取NSDate并使其填充按钮上的文本。 因此可以稍后按下按钮并将其带到另一个View Controller / Table View Controller。
我花了好几个小时试图解决这个问题,我完全卡住了找不到任何例子。
有没有人有时间帮忙解决这个问题。 使用Swift (希望我已经正确地形成了这个问题,这里有一个菜鸟) 谢谢你的期待
//year button
@IBAction func btnYear(sender: AnyObject) {
//APP DEL REFERANCE
var appdel: AppDelegate = (UIApplication.sharedApplication().delegate as AppDelegate)
var context: NSManagedObjectContext = appdel.managedObjectContext!
let ent = NSEntityDescription.entityForName("FilmInfo", inManagedObjectContext: context)!
// fetch request
var request = NSFetchRequest(entityName: "FilmInfo")
request.returnsObjectsAsFaults = false
答案 0 :(得分:0)
首先,从您的数据中获取日期。
object.date
然后,对其进行格式化,以便您可以在按钮上显示它。
var formatter = NSDateFormatter()
formatter.dateStyle= .ShortStyle
let buttonTitle = formatter.stringFromDate(object.date)
最后将标题指定给按钮
button.setTitle(buttonTitle, forState: .Normal)
首先到达对象,获取它。不要忘记执行您的获取请求。
var request = NSFetchRequest(entityName: "FilmInfo")
request.predicate = NSPredicate(format:"id = %@", aFilmInfoID) // example
request.fetchLimit = 1
let results = context.executeFetchRequest(request, error:nil)! as [FilmInfo]
let object = results.first!
答案 1 :(得分:0)
您需要在上下文中执行获取请求。
var resultsArray = context.executeFetchRequest(request,nil)
if let arr = resultsArray {
//we have some results
var firstObject: FilmInfo = arr[0] as FilmInfo
var date = firstObject.date
}
如果您只对一个对象感兴趣,可以随时设置request.fetchLimit = 1
获得更高级的功能,您也可以只获取日期属性:
fetch.propertiesToFetch = ["date"]
fetch.resultType = .DictionaryResultType