Core data 从coredata填充按钮

Core data 从coredata填充按钮,core-data,swift,nsfetchrequest,Core Data,Swift,Nsfetchrequest,我花了很多时间试图弄明白这一点,但毫无进展 我有一个具有NSDate属性的实体,它成功地保存了 我究竟如何从商店(仅限年份部分)获取NSDate并使其填充按钮上的文本。 因此,可以稍后按下该按钮并将其转到另一个视图控制器/表视图控制器 我花了好几个小时试图弄明白这一点,我完全陷入困境,找不到任何例子 请问有没有人有时间帮忙。 使用Swift (希望我已经正确地回答了这个问题,这里有点小问题) 谢谢你的关注 //year button @IBAction func btnYear(sender:

我花了很多时间试图弄明白这一点,但毫无进展

我有一个具有NSDate属性的实体,它成功地保存了

我究竟如何从商店(仅限年份部分)获取NSDate并使其填充按钮上的文本。 因此,可以稍后按下该按钮并将其转到另一个视图控制器/表视图控制器

我花了好几个小时试图弄明白这一点,我完全陷入困境,找不到任何例子

请问有没有人有时间帮忙。 使用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

首先,从数据中获取日期

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!

您需要在上下文中执行fetch请求

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

更高级的是,您还可以仅获取date属性:

fetch.propertiesToFetch = ["date"]
fetch.resultType = .DictionaryResultType

谢谢你的回答,但这还不够简单,没什么好说的。我无法想象它会变得更愚蠢。这是对你的问题的完美回答,所以你应该接受它,或者至少在你准备好你的东西之前投票需要注意的一点是,它比执行获取请求简单得多。但是simple和dumb不一样。我为您的对象添加了一个简单的获取请求作为示例。希望能有帮助。谢谢你花时间帮我,非常感谢。