Originally created by @pingus-nikalex on GitHub (Jan 9, 2020).
I will try to save records with type:
Here is model:
import UIKit import CoreData
class WindEntity: NSManagedObject { @NSManaged var wind_id:String @NSManaged var latitude:Double @NSManaged var longitude:Double
func setInitialValues() { self.latitude = Double(arc4random_uniform(180)) - 90 self.longitude = Double(arc4random_uniform(360)) - 180 self.wind_id = NSUUID().uuidString.lowercased() } var coordinate: CLLocationCoordinate2D { get { return CLLocationCoordinate2DMake( self.latitude, self.longitude ) } set { self.latitude = newValue.latitude self.longitude = newValue.longitude } }
}
Save code:
class DBManager: NSObject {
static let sharedManager = DBManager() let dataStack = DataStack(xcodeModelName: "Hunt") private override init() { super.init() let migrationProgress = dataStack.addStorage( SQLiteStore( fileName: "Hunt.sqlite", configuration: "Default", localStorageOptions: .recreateStoreOnModelMismatch // optional. Provides settings that tells the DataStack how to setup the persistent store ), completion: { (result) -> Void in switch result { case .success(let storage): print("Successfully added sqlite store: \(storage)") case .failure(let error): print("Failed adding sqlite store with error: \(error)") } } ) CoreStoreDefaults.dataStack = dataStack } func saveWindModel(weather:WeatherModel) { dataStack.perform( asynchronous: { (transaction) -> Void in let wind = transaction.create(Into<WindEntity>()) wind.setInitialValues() wind.coordinate = weather.location!.coordinate print("wind: \(wind) isUpdated \(wind.isUpdated)") }, completion: { (result) -> Void in switch result { case .success: let people = try! self.dataStack.fetchAll(From<WindEntity>()) print("people \(people)") case .failure(let error): print(error) } } ) }
After saving I will try to fetch items and have data: )
wind: <Hunt.WindEntity: 0x600001f047d0> (entity: WindEntity; id: 0x600003f9c840 x-coredata://E6238499-1013-4BAC-A8A9-460447C25A79/WindEntity/tC3C3F593-3CF5-4E41-B791-9C652B8CFDD42; data: { latitude = "50.48147854721918"; longitude = "43.66070977143403"; "wind_id" = "3f6562d4-d92a-4f05-af28-6953a8eaaf21"; }) isUpdated false people [<Hunt.WindEntity: 0x600001f3c820> (entity: WindEntity; id: 0x865fe1853c3e059b x-coredata://E6238499-1013-4BAC-A8A9-460447C25A79/WindEntity/p7; data: ), <Hunt.WindEntity: 0x600001f3ca50> (entity: WindEntity; id: 0x865fe1853c02059b x-coredata://E6238499-1013-4BAC-A8A9-460447C25A79/WindEntity/p8; data: ), <Hunt.WindEntity: 0x600001f3cdc0> (entity: WindEntity; id: 0x865fe1853c06059b x-coredata://E6238499-1013-4BAC-A8A9-460447C25A79/WindEntity/p9; data: ), <Hunt.WindEntity: 0x600001f3cd20> (entity: WindEntity; id: 0x865fe1853c0a059b x-coredata://E6238499-1013-4BAC-A8A9-460447C25A79/WindEntity/p10; data: ), <Hunt.WindEntity: 0x600001f3cbe0> (entity: WindEntity; id: 0x865fe1853c0e059b x-coredata://E6238499-1013-4BAC-A8A9-460447C25A79/WindEntity/p11; data: ), <Hunt.WindEntity: 0x600001f3ceb0> (entity: WindEntity; id: 0x865fe1853c12059b x-coredata://E6238499-1013-4BAC-A8A9-460447C25A79/WindEntity/p12; data: ), <Hunt.WindEntity: 0x600001f3cf00> (entity: WindEntity; id: 0x865fe1853c16059b x-coredata://E6238499-1013-4BAC-A8A9-460447C25A79/WindEntity/p13; data: ), <Hunt.WindEntity: 0x600001f3cf50> (entity: WindEntity; id: 0x865fe1853c1a059b x-coredata://E6238499-1013-4BAC-A8A9-460447C25A79/WindEntity/p14; data: ), <Hunt.WindEntity: 0x600001f3cfa0> (entity: WindEntity; id: 0x865fe1853c1e059b x-coredata://E6238499-1013-4BAC-A8A9-460447C25A79/WindEntity/p15; data: ), <Hunt.WindEntity: 0x600001f3cff0> (entity: WindEntity; id: 0x865fe1853c62059b x-coredata://E6238499-1013-4BAC-A8A9-460447C25A79/WindEntity/p16; data: ), <Hunt.WindEntity: 0x600001f3d040> (entity: WindEntity; id: 0x865fe1853c66059b x-coredata://E6238499-1013-4BAC-A8A9-460447C25A79/WindEntity/p17; data: ), <Hunt.WindEntity: 0x600001f3d090> (entity: WindEntity; id: 0x865fe1853c6a059b x-coredata://E6238499-1013-4BAC-A8A9-460447C25A79/WindEntity/p18; data: ), <Hunt.WindEntity: 0x600001f3d0e0> (entity: WindEntity; id: 0x865fe1853c6e059b x-coredata://E6238499-1013-4BAC-A8A9-460447C25A79/WindEntity/p19; data: ), <Hunt.WindEntity: 0x600001f3d130> (entity: WindEntity; id: 0x865fe1853c72059b x-coredata://E6238499-1013-4BAC-A8A9-460447C25A79/WindEntity/p20; data: ), <Hunt.WindEntity: 0x600001f3d180> (entity: WindEntity; id: 0x865fe1853c76059b x-coredata://E6238499-1013-4BAC-A8A9-460447C25A79/WindEntity/p21; data: ), <Hunt.WindEntity: 0x600001f3d1d0> (entity: WindEntity; id: 0x865fe1853c7a059b x-coredata://E6238499-1013-4BAC-A8A9-460447C25A79/WindEntity/p22; data: ), <Hunt.WindEntity: 0x600001f3d220> (entity: WindEntity; id: 0x865fe1853c7e059b x-coredata://E6238499-1013-4BAC-A8A9-460447C25A79/WindEntity/p23; data: ), <Hunt.WindEntity: 0x600001f3d270> (entity: WindEntity; id: 0x865fe1853c42059b x-coredata://E6238499-1013-4BAC-A8A9-460447C25A79/WindEntity/p24; data: )]
What I do wrong?
@JohnEstropia commented on GitHub (Jan 9, 2020):
I'm not sure what the problem is. Your logs seem to show that print("people \(people)") is properly displaying the objects you created:
print("people \(people)")
people [<Hunt.WindEntity: 0x600001f3c820> (entity: WindEntity; id: 0x865fe1853c3e059b x-coredata://E6238499-1013-4BAC-A8A9-460447C25A79/WindEntity/p7; data: ), <Hunt.WindEntity: 0x600001f3ca50> (entity: WindEntity; id: 0x865fe1853c02059b x-coredata://E6238499-1013-4BAC-A8A9-460447C25A79/WindEntity/p8; data: ), <Hunt.WindEntity: 0x600001f3cdc0> (entity: WindEntity; id: 0x865fe1853c06059b x-coredata://E6238499-1013-4BAC-A8A9-460447C25A79/WindEntity/p9; data: ), <Hunt.WindEntity: 0x600001f3cd20> (entity: WindEntity; id: 0x865fe1853c0a059b x-coredata://E6238499-1013-4BAC-A8A9-460447C25A79/WindEntity/p10; data: ), <Hunt.WindEntity: 0x600001f3cbe0> (entity: WindEntity; id: 0x865fe1853c0e059b x-coredata://E6238499-1013-4BAC-A8A9-460447C25A79/WindEntity/p11; data: ), <Hunt.WindEntity: 0x600001f3ceb0> (entity: WindEntity; id: 0x865fe1853c12059b x-coredata://E6238499-1013-4BAC-A8A9-460447C25A79/WindEntity/p12; data: ), <Hunt.WindEntity: 0x600001f3cf00> (entity: WindEntity; id: 0x865fe1853c16059b x-coredata://E6238499-1013-4BAC-A8A9-460447C25A79/WindEntity/p13; data: ), <Hunt.WindEntity: 0x600001f3cf50> (entity: WindEntity; id: 0x865fe1853c1a059b x-coredata://E6238499-1013-4BAC-A8A9-460447C25A79/WindEntity/p14; data: ), <Hunt.WindEntity: 0x600001f3cfa0> (entity: WindEntity; id: 0x865fe1853c1e059b x-coredata://E6238499-1013-4BAC-A8A9-460447C25A79/WindEntity/p15; data: ), <Hunt.WindEntity: 0x600001f3cff0> (entity: WindEntity; id: 0x865fe1853c62059b x-coredata://E6238499-1013-4BAC-A8A9-460447C25A79/WindEntity/p16; data: ), <Hunt.WindEntity: 0x600001f3d040> (entity: WindEntity; id: 0x865fe1853c66059b x-coredata://E6238499-1013-4BAC-A8A9-460447C25A79/WindEntity/p17; data: ), <Hunt.WindEntity: 0x600001f3d090> (entity: WindEntity; id: 0x865fe1853c6a059b x-coredata://E6238499-1013-4BAC-A8A9-460447C25A79/WindEntity/p18; data: ), <Hunt.WindEntity: 0x600001f3d0e0> (entity: WindEntity; id: 0x865fe1853c6e059b x-coredata://E6238499-1013-4BAC-A8A9-460447C25A79/WindEntity/p19; data: ), <Hunt.WindEntity: 0x600001f3d130> (entity: WindEntity; id: 0x865fe1853c72059b x-coredata://E6238499-1013-4BAC-A8A9-460447C25A79/WindEntity/p20; data: ), <Hunt.WindEntity: 0x600001f3d180> (entity: WindEntity; id: 0x865fe1853c76059b x-coredata://E6238499-1013-4BAC-A8A9-460447C25A79/WindEntity/p21; data: ), <Hunt.WindEntity: 0x600001f3d1d0> (entity: WindEntity; id: 0x865fe1853c7a059b x-coredata://E6238499-1013-4BAC-A8A9-460447C25A79/WindEntity/p22; data: ), <Hunt.WindEntity: 0x600001f3d220> (entity: WindEntity; id: 0x865fe1853c7e059b x-coredata://E6238499-1013-4BAC-A8A9-460447C25A79/WindEntity/p23; data: ), <Hunt.WindEntity: 0x600001f3d270> (entity: WindEntity; id: 0x865fe1853c42059b x-coredata://E6238499-1013-4BAC-A8A9-460447C25A79/WindEntity/p24; data: )]
No dependencies set.
The note is not visible to the blocked user.
Originally created by @pingus-nikalex on GitHub (Jan 9, 2020).
I will try to save records with type:
Here is model:
import UIKit
import CoreData
class WindEntity: NSManagedObject {
@NSManaged var wind_id:String
@NSManaged var latitude:Double
@NSManaged var longitude:Double
}
Save code:
class DBManager: NSObject {
}
After saving I will try to fetch items and have data: )
wind: <Hunt.WindEntity: 0x600001f047d0> (entity: WindEntity; id: 0x600003f9c840 x-coredata://E6238499-1013-4BAC-A8A9-460447C25A79/WindEntity/tC3C3F593-3CF5-4E41-B791-9C652B8CFDD42; data: {
latitude = "50.48147854721918";
longitude = "43.66070977143403";
"wind_id" = "3f6562d4-d92a-4f05-af28-6953a8eaaf21";
}) isUpdated false
people [<Hunt.WindEntity: 0x600001f3c820> (entity: WindEntity; id: 0x865fe1853c3e059b x-coredata://E6238499-1013-4BAC-A8A9-460447C25A79/WindEntity/p7; data: ), <Hunt.WindEntity: 0x600001f3ca50> (entity: WindEntity; id: 0x865fe1853c02059b x-coredata://E6238499-1013-4BAC-A8A9-460447C25A79/WindEntity/p8; data: ), <Hunt.WindEntity: 0x600001f3cdc0> (entity: WindEntity; id: 0x865fe1853c06059b x-coredata://E6238499-1013-4BAC-A8A9-460447C25A79/WindEntity/p9; data: ), <Hunt.WindEntity: 0x600001f3cd20> (entity: WindEntity; id: 0x865fe1853c0a059b x-coredata://E6238499-1013-4BAC-A8A9-460447C25A79/WindEntity/p10; data: ), <Hunt.WindEntity: 0x600001f3cbe0> (entity: WindEntity; id: 0x865fe1853c0e059b x-coredata://E6238499-1013-4BAC-A8A9-460447C25A79/WindEntity/p11; data: ), <Hunt.WindEntity: 0x600001f3ceb0> (entity: WindEntity; id: 0x865fe1853c12059b x-coredata://E6238499-1013-4BAC-A8A9-460447C25A79/WindEntity/p12; data: ), <Hunt.WindEntity: 0x600001f3cf00> (entity: WindEntity; id: 0x865fe1853c16059b x-coredata://E6238499-1013-4BAC-A8A9-460447C25A79/WindEntity/p13; data: ), <Hunt.WindEntity: 0x600001f3cf50> (entity: WindEntity; id: 0x865fe1853c1a059b x-coredata://E6238499-1013-4BAC-A8A9-460447C25A79/WindEntity/p14; data: ), <Hunt.WindEntity: 0x600001f3cfa0> (entity: WindEntity; id: 0x865fe1853c1e059b x-coredata://E6238499-1013-4BAC-A8A9-460447C25A79/WindEntity/p15; data: ), <Hunt.WindEntity: 0x600001f3cff0> (entity: WindEntity; id: 0x865fe1853c62059b x-coredata://E6238499-1013-4BAC-A8A9-460447C25A79/WindEntity/p16; data: ), <Hunt.WindEntity: 0x600001f3d040> (entity: WindEntity; id: 0x865fe1853c66059b x-coredata://E6238499-1013-4BAC-A8A9-460447C25A79/WindEntity/p17; data: ), <Hunt.WindEntity: 0x600001f3d090> (entity: WindEntity; id: 0x865fe1853c6a059b x-coredata://E6238499-1013-4BAC-A8A9-460447C25A79/WindEntity/p18; data: ), <Hunt.WindEntity: 0x600001f3d0e0> (entity: WindEntity; id: 0x865fe1853c6e059b x-coredata://E6238499-1013-4BAC-A8A9-460447C25A79/WindEntity/p19; data: ), <Hunt.WindEntity: 0x600001f3d130> (entity: WindEntity; id: 0x865fe1853c72059b x-coredata://E6238499-1013-4BAC-A8A9-460447C25A79/WindEntity/p20; data: ), <Hunt.WindEntity: 0x600001f3d180> (entity: WindEntity; id: 0x865fe1853c76059b x-coredata://E6238499-1013-4BAC-A8A9-460447C25A79/WindEntity/p21; data: ), <Hunt.WindEntity: 0x600001f3d1d0> (entity: WindEntity; id: 0x865fe1853c7a059b x-coredata://E6238499-1013-4BAC-A8A9-460447C25A79/WindEntity/p22; data: ), <Hunt.WindEntity: 0x600001f3d220> (entity: WindEntity; id: 0x865fe1853c7e059b x-coredata://E6238499-1013-4BAC-A8A9-460447C25A79/WindEntity/p23; data: ), <Hunt.WindEntity: 0x600001f3d270> (entity: WindEntity; id: 0x865fe1853c42059b x-coredata://E6238499-1013-4BAC-A8A9-460447C25A79/WindEntity/p24; data: )]
What I do wrong?
@JohnEstropia commented on GitHub (Jan 9, 2020):
I'm not sure what the problem is. Your logs seem to show that
print("people \(people)")is properly displaying the objects you created: