Inherits from NSObject
Conforms to NSCopying
NSSecureCoding
Declared in FBSDKProfile.h

Overview

This class provides a global “currentProfile” instance to more easily add social context to your application. When the profile changes, a notification is posted so that you can update relevant parts of your UI and is persisted to NSUserDefaults.

Typically, you will want to call enableUpdatesOnAccessTokenChange:YES so that it automatically observes changes to the [FBSDKAccessToken currentAccessToken].

You can use this class to build your own FBSDKProfilePictureView or in place of typical requests to “/me”.

Properties

firstName

The user’s first name

@property (nonatomic, readonly) NSString *firstName

Declared In

FBSDKProfile.h

lastName

The user’s last name

@property (nonatomic, readonly) NSString *lastName

Declared In

FBSDKProfile.h

linkURL

A URL to the user’s profile.

@property (nonatomic, readonly) NSURL *linkURL

Discussion

Consider using Bolts and FBSDKAppLinkResolver to resolve this to an app link to link directly to the user’s profile in the Facebook app.

Declared In

FBSDKProfile.h

middleName

The user’s middle name

@property (nonatomic, readonly) NSString *middleName

Declared In

FBSDKProfile.h

name

The user’s complete name

@property (nonatomic, readonly) NSString *name

Declared In

FBSDKProfile.h

refreshDate

The last time the profile data was fetched.

@property (nonatomic, readonly) NSDate *refreshDate

Declared In

FBSDKProfile.h

userID

The user id

@property (nonatomic, readonly) NSString *userID

Declared In

FBSDKProfile.h

Class Methods

currentProfile

Gets the current FBSDKProfile instance.

+ (FBSDKProfile *)currentProfile

Declared In

FBSDKProfile.h

enableUpdatesOnAccessTokenChange:

Indicates if currentProfile will automatically observe FBSDKAccessTokenDidChangeNotification notifications

+ (void)enableUpdatesOnAccessTokenChange:(BOOL)enable

Parameters

enable

YES is observing

Discussion

If observing, this class will issue a graph request for public profile data when the current token’s userID differs from the current profile. You can observe FBSDKProfileDidChangeNotification for when the profile is updated.

Note that if [FBSDKAccessToken currentAccessToken] is unset, the currentProfile instance remains. It’s also possible for currentProfile to return nil until the data is fetched.

Declared In

FBSDKProfile.h

loadCurrentProfileWithCompletion:

Loads the current profile and passes it to the completion block.

+ (void)loadCurrentProfileWithCompletion:(void ( ^ ) ( FBSDKProfile *profile , NSError *error ))completion

Parameters

completion

The block to be executed once the profile is loaded

Discussion

If the profile is already loaded, this method will call the completion block synchronously, otherwise it will begin a graph request to update currentProfile and then call the completion block when finished.

Declared In

FBSDKProfile.h

setCurrentProfile:

Sets the current instance and posts the appropriate notification if the profile parameter is different than the receiver.

+ (void)setCurrentProfile:(FBSDKProfile *)profile

Parameters

profile

the profile to set

Discussion

This persists the profile to NSUserDefaults.

Declared In

FBSDKProfile.h

Instance Methods

imagePathForPictureMode:size:

A convenience method for returning a Graph API path for retrieving the user’s profile image. (Deprecated: use imageURLForPictureMode:size: instead)

- (NSString *)imagePathForPictureMode:(FBSDKProfilePictureMode)mode size:(CGSize)size

Parameters

mode

The picture mode

size

The height and width. This will be rounded to integer precision.

Discussion

You can pass this to a FBSDKGraphRequest instance to download the image.

Declared In

FBSDKProfile.h

imageURLForPictureMode:size:

A convenience method for returning a complete NSURL for retrieving the user’s profile image.

- (NSURL *)imageURLForPictureMode:(FBSDKProfilePictureMode)mode size:(CGSize)size

Parameters

mode

The picture mode

size

The height and width. This will be rounded to integer precision.

Declared In

FBSDKProfile.h

initWithUserID:firstName:middleName:lastName:name:linkURL:refreshDate:

initializes a new instance.

- (instancetype)initWithUserID:(NSString *)userID firstName:(NSString *)firstName middleName:(NSString *)middleName lastName:(NSString *)lastName name:(NSString *)name linkURL:(NSURL *)linkURL refreshDate:(NSDate *)refreshDate

Parameters

userID

the user ID

firstName

the user’s first name

middleName

the user’s middle name

lastName

the user’s last name

name

the user’s complete name

linkURL

the link for this profile

refreshDate

the optional date this profile was fetched. Defaults to [NSDate date].

Declared In

FBSDKProfile.h

isEqualToProfile:

Returns YES if the profile is equivalent to the receiver.

- (BOOL)isEqualToProfile:(FBSDKProfile *)profile

Parameters

profile

the profile to compare to.

Declared In

FBSDKProfile.h