title: CoreData Fetch (Sort by Date) - Doesn't update for new data?
body: <p>I have a program which has CoreData entities including a NSDate field that indicates date each object was saved.</p>
  
  <p>I want to make sure that the user hasn't executed the "saving" code within X minutes (in testing set to 1). If it is within X minutes, don't add additional object to context, just execute the rest of the code... otherwise, save then execute.</p>
  
  <p>Here is the beginning of the code that creates a new object:</p>
  
  <pre><code>func makePlaces (NSObject: AnyObject) {
  
      let objectCount = checkCoreForObjects()
  
      //if objects exist in coredata
      if objectCount &gt; 0 {
          //check what the difference from latest entry is
          var latestPlace = getLatestPlace()
          println(latestPlace[0].date.timeIntervalSinceNow/60)
          if floor(latestPlace[0].date.timeIntervalSinceNow/60) &gt;= -1 {
              println("within 1 minute")
              return
          } else {
              println("more than 1 minute")
          }
      }
  
      let newPlace = NSEntityDescription.insertNewObjectForEntityForName("Place",
          inManagedObjectContext: self.managedObjectContext!) as! Place
  
      newPlace.date = now
  //lots of other working code has been removed here for clarity
  
  
  self.managedObjectContext!.save(nil)
  </code></pre>
  
  <p>This is the "getLatestPlace()" method that returns the latest date (or so I think...):</p>
  
  <pre><code>func getLatestPlace () -&gt; [Place] {
      var error: NSError? = nil
      let request = NSFetchRequest(entityName: "Place")
      let sortDescriptor = NSSortDescriptor(key: "date", ascending: false)
      let sortDescriptors = [sortDescriptor]
      request.sortDescriptors = sortDescriptors
      request.fetchLimit = 1
      var latestPlace = self.managedObjectContext?.executeFetchRequest(request, error: &amp;error) as! [Place]
      println("latestPlaces count: \(latestPlace.count)")
      println("latesttime is \(latestPlace[0].date)")
      return latestPlace
  }
  </code></pre>
  
  <p>This is the console readout:</p>
  
  <pre><code>//FIRST SAVE ATTEMPT
  latestPlaces count: 1
  latest date save is 2015-06-02 17:02:00 +0000
  -24.5014304161072
  more than 1 minute
  
  //SECOND SAVE ATTEMPT (was within 1 min, latest date save did update)
  latestPlaces count: 1
  latest date save is 2015-06-02 17:26:17 +0000
  -0.463125466307004
  within 1 minute
  
  //THIRD SAVE ATTEMPT (was after 1 min)
  latestPlaces count: 1
  latest date save is 2015-06-02 17:26:17 +0000
  -1.39080496629079
  more than 1 minute
  
  //FOURTH SAVE ATTEMPT (was within 1 min, latest date save DIDNT update?!)
  latestPlaces count: 1
  latest date save is 2015-06-02 17:26:17 +0000
  -1.47449685037136
  more than 1 minute
  </code></pre>
  
  <p><strong>TLDR: Why is "Fourth Save Attempt" in the console not properly indicating that the save attempt was within 1 minute of the most recent object in core data? It just lets me spam save after the first minute without updating the date to the most recent value.</strong></p>
  
  <p>I'm a new programmer and I can't figure this out. I hope it is something stupid I am just not seeing! Any help appreciated.</p>