Parse.com - How to refresh the User's information

后端 未结 3 2075
不知归路
不知归路 2021-02-06 07:18

When I\'m changing for example a bool in the Parse backend I can not retrieve this value in my iOS app. Please see the following screenshot where the first bool of the user obje

3条回答
  •  花落未央
    2021-02-06 07:53

    Examples in Swift:

    First and foremost, please have a look at isDataAvailable and isDirty.

    var user = PFUser.currentUser()!
    
    // Gets whether the PFObject has been fetched.
    // isDataAvailable: true if the PFObject is new or has been fetched or refreshed, otherwise false.
    user.isDataAvailable()
    
    // Gets whether any key-value pair in this object (or its children) has been added/updated/removed and not saved yet. 
    // Returns whether this object has been altered and not saved yet.
    user.isDirty()
    

    Also it is probably better/more efficient to use fetchIfNeeded, fetchIfNeededInBackground, or fetchIfNeededInBackgroundWithBlock: "since they will use the local cache when available."

    // Synchronously fetches the PFObject data from the server if isDataAvailable is false.
    user.fetchIfNeeded()
    
    // Fetches the PFObject data asynchronously if isDataAvailable is false, then sets it as a result for the task.    
    user.fetchIfNeededInBackground()
    
    // Fetches the PFObject data asynchronously if isDataAvailable is false, then calls the callback block.        
    user.fetchIfNeededInBackgroundWithBlock({ 
                (object: PFObject?, error: NSError?) -> Void in
        // Code here         
    })
    

    Otherwise you can also use fetch, fetchInBackground, fetchInBackgroundWithBlock if you do not need to use the local cache.

    // Synchronously fetches the PFObject with the current data from the server.
    user.fetch()
                
    // Fetches the PFObject asynchronously and sets it as a result for the task.
    user.fetchInBackground()
                
    // Fetches the PFObject asynchronously and executes the given callback block.
    user.fetchInBackgroundWithBlock({
                   (object: PFObject?, error: NSError?) -> Void in
         // Code here
    })
    

提交回复
热议问题