NSTimeInterval master data using an accessor directly is an error

I set NSTimeInterval using setValueForKey in a subclass of NSManagedObject, the value is set correctly, and also true when it is retrieved using valueForKey, however, if the accessor is used directly, it returns an invalid value. Here is sample code that demonstrates the problem

let date = NSDate() //NSTimeIntervalSince1970 = 1447054145.15281
self.setValueForKey(date, "dateLastSynced")

self.valueForKey("dateLastSynced") //= 1447054145.15281
self.dateLastSynced // !!ERROR Incorrect value = 468746945.152815

Oddly enough, if dateLastSynced is converted to NSDate, everything works fine.

Any ideas on what's going on?

+4
source share
2 answers

NSTimeInterval Date 1 2001 . NSTimeInterval NSDate.

obj.dateLastSynced = date.timeIntervalSinceReferenceDate

let date = NSDate(timeIntervalSinceReferenceDate: obj.dateLastSynced)

,

// Set:
obj.setValueForKey(date, "dateLastSynced")
// Get:
let date = obj.valueForKey("dateLastSynced")
+7

self.valueForKey("dateLastSynced") ; lvalue. setValueForKey.

, dateLastSynced , double , .

self.setValue(NSDate(timeIntervalSinceReferenceDate: <value>), forKey:"dateLastSynced")
+2

Source: https://habr.com/ru/post/1615008/


All Articles