Skip to content

Model.mapping(map: Map(mappingType: .fromJSON, JSON: meetingJson)) not saving ID #1391

@addame2

Description

@addame2

params- mapping before != nil Optional(3134620)
params- mapping after Optional(3134620) nil
params- saveInContext(meetingJson: Optional(3134620)
params- meetingFind 0 why my id is nil ? any idea?

    public static func saveInContext(meetingJson: [String : Any], source: MeetingSource, completion: ((MeetingModel?) -> Void)? = nil) {
        
        MagicalRecord.save { context in
            context.mergePolicy = NSMergePolicy(merge: NSMergePolicyType.overwriteMergePolicyType)
            let ctx = MapManagedObjectContext(context: context)
            var meeting = MeetingModel.mr_findFirst(with: NSPredicate(format: "id=%@", meetingJson["id"] as! CVarArg), in: ctx.ctx)
            if meeting != nil {
                print("params- mapping before != nil", meeting?.id )
                meeting?.mapping(map: Map(mappingType: .fromJSON, JSON: meetingJson))
                print("params- mapping after", meeting?.id, meetingRes?.id )
            } else {
                print("params- mapping before == nil", meeting?.id )
                meeting = Mapper<MeetingModel>(context: ctx).map(JSON: meetingJson)
                print("params- mapping before == nil", meeting?.id)
            }
            meeting?.source = Int16(source.rawValue)
            
            if let profJson = meetingJson["prof"] as? [String : Any] {
                if let login = profJson["login"] as? String {
                    let profile = OtherUserModel.mr_findFirst(with: NSPredicate(format: "login = %@", login), in: ctx.ctx)
                    if profile != nil {
                        profile!.mapping(map: Map(mappingType: .fromJSON, JSON: profJson))
                        meeting?.prof = profile
                    } else {
                        let profile = Mapper<OtherUserModel>(context: ctx).map(JSON: profJson)
                        meeting?.prof = profile
                    }
                }
            }
            print("params- saveInContext(meetingJson:", meeting?.id )
            
            if let meetingFind = MeetingModel.mr_findFirst(with: NSPredicate(format: "source == \(MeetingSource.my.rawValue)")) {
                print("params- meetingFind", meetingFind.id )
            }
            
        } completion: { result, error in
            completion?(getMyMeeting())
        }
        
    }


    public static func getMyMeeting() -> MeetingModel? {
        if let meeting = MeetingModel.mr_findFirst(with: NSPredicate(format: "source == \(MeetingSource.my.rawValue)")) {
            return meeting
        }
        return nil
    }

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions