FBFriendPickerViewController
This class is no longer available in the most recent version of the SDK.
A more recent version of this class is available. Check out the latest version.

The FBFriendPickerViewController class creates a controller object that manages the user interface for displaying and selecting Facebook friends.

Discussion:

When the FBFriendPickerViewController view loads it creates a UITableView object where the friends will be displayed. You can access this view through the tableView property. The friend display can be sorted by first name or last name. Friends' names can be displayed with the first name first or the last name first.

The friend data can be pre-fetched and cached prior to using the view controller. The cache is setup using an FBCacheDescriptor object that can trigger the data fetch. Any friend data requests will first check the cache and use that data. If the friend picker is being displayed cached data will initially be shown before a fresh copy is retrieved.

The delegate property may be set to an object that conforms to the FBFriendPickerDelegate protocol. The delegate object will receive updates related to friend selection and data changes. The delegate can also be used to filter the friends to display in the picker.

Inherits from:FBViewController
Declared in:FBFriendPickerViewController.h
Properties
allowsMultipleSelection

A Boolean value that specifies whether multi-select is enabled.

@property (nonatomic) BOOL allowsMultipleSelection;
displayOrdering

The order in which friends' names are displayed.

@property (nonatomic) FBFriendDisplayOrdering displayOrdering;
fieldsForRequest

Addtional fields to fetch when making the Graph API call to get friend data.

@property (nonatomic, copy) NSSet *fieldsForRequest;
itemPicturesEnabled

A Boolean value that indicates whether friend profile pictures are displayed.

@property (nonatomic) BOOL itemPicturesEnabled;
selection

The list of friends that are currently selected in the veiw. The items in the array are FBGraphUser objects.

@property (nonatomic, copy) NSArray *selection;
Discussion:

You can set this this array to pre-select items in the picker. The objects in the array must be complete idFBGraphUser objects (i.e., fetched from a Graph query or from a previous picker's selection, with id and appropriate name fields).

session

The session that is used in the request for friend data.

@property (nonatomic, retain) FBSession *session;
sortOrdering

The order in which friends are sorted in the display.

@property (nonatomic) FBFriendSortOrdering sortOrdering;
spinner

Returns an outlet for the spinner used in the view controller.

@property (nonatomic, retain) IBOutlet UIActivityIndicatorView *spinner;
tableView

Returns an outlet for the table view managed by the view controller.

@property (nonatomic, retain) IBOutlet UITableView *tableView;
userID

The profile ID of the user whose friends are being viewed.

@property (nonatomic, copy) NSString *userID;
Class Methods
cacheDescriptor

Creates a cache descriptor based on default settings of the FBFriendPickerViewController object.

+ (FBCacheDescriptor *) cacheDescriptor;
Discussion:

An FBCacheDescriptor object may be used to pre-fetch data before it is used by the view controller. It may also be used to configure the FBFriendPickerViewController object.

cacheDescriptorWithUserID:fieldsForRequest:

Creates a cache descriptor with additional fields and a profile ID for use with the FBFriendPickerViewController object.

ParameterDescription
userID

The profile ID of the user whose friends will be displayed. A nil value implies a "me" alias.

fieldsForRequest

The set of additional fields to include in the request for friend data.

+ (FBCacheDescriptor *)
cacheDescriptorWithUserID: (NSString *)userID
fieldsForRequest: (NSSet *)fieldsForRequest;
Discussion:

An FBCacheDescriptor object may be used to pre-fetch data before it is used by the view controller. It may also be used to configure the FBFriendPickerViewController object.

Instance Methods
clearSelection

Clears the current selection, so the picker is ready for a fresh use.

- (void) clearSelection;
configureUsingCachedDescriptor:

Configures the properties used in the caching data queries.

ParameterDescription
cacheDescriptor

The containing the cache query properties.

- (void) configureUsingCachedDescriptor:(FBCacheDescriptor *)cacheDescriptor;
Discussion:

Cache descriptors are used to fetch and cache the data used by the view controller. If the view controller finds a cached copy of the data, it will first display the cached content then fetch a fresh copy from the server.

initWithCoder:

Initializes a friend picker view controller.

ParameterDescription
aDecoder

An unarchiver object.

- (instancetype) initWithCoder:(NSCoder *)aDecoder;
initWithNibName:bundle:

Used to initialize the object

ParameterDescription
nibNameOrNil

The name of the nib file to associate with the view controller. The nib file name should not contain any leading path information. If you specify nil, the nibName property is set to nil.

nibBundleOrNil

The bundle in which to search for the nib file. This method looks for the nib file in the bundle's language-specific project directories first, followed by the Resources directory. If nil, this method looks for the nib file in the main bundle.

- (instancetype)
initWithNibName: (NSString *)nibNameOrNil
bundle: (NSBundle *)nibBundleOrNil;
loadData

Initiates a query to get friend data.

- (void) loadData;
Discussion:

A cached copy will be returned if available. The cached view is temporary until a fresh copy is retrieved from the server. It is legal to call this more than once.

updateView

Updates the view locally without fetching data from the server or from cache.

- (void) updateView;
Discussion:

Use this if the filter or sort properties change. This may affect the order or display of friend information but should not need require new data.

Typedefs
NS_ENUM (NSUInteger, FBFriendDisplayOrdering)

Indicates whether friends should be displayed first-name-first or last-name-first.

typedef NS_ENUM(NSUInteger, FBFriendDisplayOrdering) {
FBFriendDisplayByFirstName = 0,
FBFriendDisplayByLastName,
};
ConstantDescription
FBFriendDisplayByFirstName

Display friends as First Middle Last.

FBFriendDisplayByLastName

Display friends as Last First Middle.

NS_ENUM (NSUInteger, FBFriendSortOrdering)

Indicates the order in which friends should be listed in the friend picker.

typedef NS_ENUM(NSUInteger, FBFriendSortOrdering) {
FBFriendSortByFirstName = 0,
FBFriendSortByLastName
};
ConstantDescription
FBFriendSortByFirstName

Sort friends by first, middle, last names.

FBFriendSortByLastName

Sort friends by last, first, middle names.