pub struct GKLeaderboard { /* private fields */ }GKLeaderboard only.Expand description
GKLeaderboard represents a single instance of a leaderboard for the current game. Leaderboards can be of the following types:
- Classic - Traditional, non-expiring leaderboards
- Recurring - Periodic timed leaderboards that follow a recurrence rule defined in App Store Connect.
See also Apple’s documentation
Implementations§
Source§impl GKLeaderboard
impl GKLeaderboard
Sourcepub unsafe fn groupIdentifier(&self) -> Option<Retained<NSString>>
pub unsafe fn groupIdentifier(&self) -> Option<Retained<NSString>>
set when leaderboards have been designated a game group; set when loadLeaderboardsWithCompletionHandler has been called for leaderboards that support game groups
Sourcepub unsafe fn baseLeaderboardID(&self) -> Retained<NSString>
pub unsafe fn baseLeaderboardID(&self) -> Retained<NSString>
Leaderboard ID defined in App Store Connect that this instance is associated with
Sourcepub unsafe fn type(&self) -> GKLeaderboardType
pub unsafe fn type(&self) -> GKLeaderboardType
Type of leaderboard
Sourcepub unsafe fn startDate(&self) -> Option<Retained<NSDate>>
pub unsafe fn startDate(&self) -> Option<Retained<NSDate>>
Date and time this instance started accepting score submissions (only applicable to recurring leaderboards)
Sourcepub unsafe fn nextStartDate(&self) -> Option<Retained<NSDate>>
pub unsafe fn nextStartDate(&self) -> Option<Retained<NSDate>>
Date and time the next instance will start accepting score submissions (only applicable to recurring leaderboards)
Sourcepub unsafe fn duration(&self) -> NSTimeInterval
pub unsafe fn duration(&self) -> NSTimeInterval
Duration from startDate during which this leaderboard instance accepts score submissions (only applicable to recurring leaderboards)
Sourcepub unsafe fn leaderboardDescription(&self) -> Retained<NSString>
pub unsafe fn leaderboardDescription(&self) -> Retained<NSString>
The description of this Leaderboard as configured by the developer in App Store Connect.
Sourcepub unsafe fn releaseState(&self) -> GKReleaseState
Available on crate feature GKReleaseState only.
pub unsafe fn releaseState(&self) -> GKReleaseState
GKReleaseState only.The release state of the leaderboard in App Store Connect.
Sourcepub unsafe fn activityIdentifier(&self) -> Retained<NSString>
pub unsafe fn activityIdentifier(&self) -> Retained<NSString>
The identifier of the game activity associated with this leaderboard, as configured by the developer in App Store Connect.
Sourcepub unsafe fn activityProperties(
&self,
) -> Retained<NSDictionary<NSString, NSString>>
pub unsafe fn activityProperties( &self, ) -> Retained<NSDictionary<NSString, NSString>>
The properties when associating this leaderboard with a game activity, as configured by the developer in App Store Connect.
Sourcepub unsafe fn isHidden(&self) -> bool
pub unsafe fn isHidden(&self) -> bool
A Boolean value that indicates whether the current leaderboard isn’t visible in Game Center views.
You can still submit scores to a hidden leaderboard.
Sourcepub unsafe fn loadLeaderboardsWithIDs_completionHandler(
leaderboard_i_ds: Option<&NSArray<NSString>>,
completion_handler: &DynBlock<dyn Fn(*mut NSArray<GKLeaderboard>, *mut NSError)>,
)
Available on crate feature block2 only.
pub unsafe fn loadLeaderboardsWithIDs_completionHandler( leaderboard_i_ds: Option<&NSArray<NSString>>, completion_handler: &DynBlock<dyn Fn(*mut NSArray<GKLeaderboard>, *mut NSError)>, )
block2 only.Loads classic and recurring leaderboards associated with the supplied App Store Connect leaderboard IDs. If leaderboardIDs is nil, this loads all classic and recurring leaderboards for this game.
Sourcepub unsafe fn loadPreviousOccurrenceWithCompletionHandler(
&self,
completion_handler: &DynBlock<dyn Fn(*mut GKLeaderboard, *mut NSError)>,
)
Available on crate feature block2 only.
pub unsafe fn loadPreviousOccurrenceWithCompletionHandler( &self, completion_handler: &DynBlock<dyn Fn(*mut GKLeaderboard, *mut NSError)>, )
block2 only.Loads the occurrence preceding this occurrence for a recurring leaderboard in which the local player submitted a score. If no previous occurrence is found that the player submitted a score to, then the most recent previous occurrence is returned.
Sourcepub unsafe fn submitScore_context_player_leaderboardIDs_completionHandler(
score: NSInteger,
context: NSUInteger,
player: &GKPlayer,
leaderboard_i_ds: &NSArray<NSString>,
completion_handler: &DynBlock<dyn Fn(*mut NSError)>,
)
Available on crate features GKBasePlayer and GKPlayer and block2 only.
pub unsafe fn submitScore_context_player_leaderboardIDs_completionHandler( score: NSInteger, context: NSUInteger, player: &GKPlayer, leaderboard_i_ds: &NSArray<NSString>, completion_handler: &DynBlock<dyn Fn(*mut NSError)>, )
GKBasePlayer and GKPlayer and block2 only.Class method to submit a single score to multiple leaderboards score - earned by the player context - developer supplied metadata associated with the player’s score player - the player for whom this score is being submitted leaderboardIDs - one or more leaderboard IDs defined in App Store Connect
Sourcepub unsafe fn submitScore_context_player_completionHandler(
&self,
score: NSInteger,
context: NSUInteger,
player: &GKPlayer,
completion_handler: &DynBlock<dyn Fn(*mut NSError)>,
)
Available on crate features GKBasePlayer and GKPlayer and block2 only.
pub unsafe fn submitScore_context_player_completionHandler( &self, score: NSInteger, context: NSUInteger, player: &GKPlayer, completion_handler: &DynBlock<dyn Fn(*mut NSError)>, )
GKBasePlayer and GKPlayer and block2 only.Instance method to submit a single score to the leaderboard associated with this instance score - earned by the player context - developer supplied metadata associated with the player’s score player - the player for whom this score is being submitted
Sourcepub unsafe fn loadEntriesForPlayerScope_timeScope_range_completionHandler(
&self,
player_scope: GKLeaderboardPlayerScope,
time_scope: GKLeaderboardTimeScope,
range: NSRange,
completion_handler: &DynBlock<dyn Fn(*mut GKLeaderboardEntry, *mut NSArray<GKLeaderboardEntry>, NSInteger, *mut NSError)>,
)
Available on crate features GKLeaderboardEntry and block2 only.
pub unsafe fn loadEntriesForPlayerScope_timeScope_range_completionHandler( &self, player_scope: GKLeaderboardPlayerScope, time_scope: GKLeaderboardTimeScope, range: NSRange, completion_handler: &DynBlock<dyn Fn(*mut GKLeaderboardEntry, *mut NSArray<GKLeaderboardEntry>, NSInteger, *mut NSError)>, )
GKLeaderboardEntry and block2 only.Loads leaderboard entries based on the supplied parameters. playerScope - Friends or Global timeScope - Today, Week, All Time (Only applicable to classic leaderboards) range - Range of ranked entries to return (minimum start index 1, maximum length 100) Upon completion, will return: localPlayerEntry - entry for the local player entries - requested entries matching supplied parameters totalPlayerCount - total player count matching specified scope
Sourcepub unsafe fn loadEntriesForPlayers_timeScope_completionHandler(
&self,
players: &NSArray<GKPlayer>,
time_scope: GKLeaderboardTimeScope,
completion_handler: &DynBlock<dyn Fn(*mut GKLeaderboardEntry, *mut NSArray<GKLeaderboardEntry>, *mut NSError)>,
)
Available on crate features GKBasePlayer and GKLeaderboardEntry and GKPlayer and block2 only.
pub unsafe fn loadEntriesForPlayers_timeScope_completionHandler( &self, players: &NSArray<GKPlayer>, time_scope: GKLeaderboardTimeScope, completion_handler: &DynBlock<dyn Fn(*mut GKLeaderboardEntry, *mut NSArray<GKLeaderboardEntry>, *mut NSError)>, )
GKBasePlayer and GKLeaderboardEntry and GKPlayer and block2 only.Loads leaderboard entries for specific players based on the supplied parameters. players - Array of players to load entries for timeScope - Today, Week, All Time (Only applicable to classic leaderboards) Upon completion, will return: localPlayerEntry - entry for the local player entries - requested entries matching supplied parameters
Source§impl GKLeaderboard
Deprecated.
impl GKLeaderboard
Deprecated.
pub unsafe fn category(&self) -> Option<Retained<NSString>>
Sourcepub unsafe fn setCategory(&self, category: Option<&NSString>)
👎Deprecated
pub unsafe fn setCategory(&self, category: Option<&NSString>)
pub unsafe fn initWithPlayerIDs( this: Allocated<Self>, player_i_ds: Option<&NSArray<NSString>>, ) -> Option<Retained<Self>>
pub unsafe fn loadCategoriesWithCompletionHandler( completion_handler: Option<&DynBlock<dyn Fn(*mut NSArray<NSString>, *mut NSArray<NSString>, *mut NSError)>>, )
block2 only.pub unsafe fn setDefaultLeaderboard_withCompletionHandler( leaderboard_identifier: Option<&NSString>, completion_handler: Option<&DynBlock<dyn Fn(*mut NSError)>>, )
block2 only.pub unsafe fn timeScope(&self) -> GKLeaderboardTimeScope
Sourcepub unsafe fn setTimeScope(&self, time_scope: GKLeaderboardTimeScope)
👎Deprecated
pub unsafe fn setTimeScope(&self, time_scope: GKLeaderboardTimeScope)
Setter for timeScope.
Sourcepub unsafe fn playerScope(&self) -> GKLeaderboardPlayerScope
👎Deprecated
pub unsafe fn playerScope(&self) -> GKLeaderboardPlayerScope
Filter on friends. Does not apply to leaderboard initialized with players.
Sourcepub unsafe fn setPlayerScope(&self, player_scope: GKLeaderboardPlayerScope)
👎Deprecated
pub unsafe fn setPlayerScope(&self, player_scope: GKLeaderboardPlayerScope)
Setter for playerScope.
Sourcepub unsafe fn identifier(&self) -> Option<Retained<NSString>>
👎Deprecated
pub unsafe fn identifier(&self) -> Option<Retained<NSString>>
leaderboardID. If nil, fetch the aggregate leaderboard.
Sourcepub unsafe fn setIdentifier(&self, identifier: Option<&NSString>)
👎Deprecated
pub unsafe fn setIdentifier(&self, identifier: Option<&NSString>)
Setter for identifier.
This is copied when set.
Sourcepub unsafe fn range(&self) -> NSRange
👎Deprecated
pub unsafe fn range(&self) -> NSRange
Leaderboards start at index 1 and the length should be less than 100. Does not apply to leaderboards initialized with players. Exception will be thrown if developer tries to set an invalid range.
Sourcepub unsafe fn scores(&self) -> Option<Retained<NSArray<GKScore>>>
👎DeprecatedAvailable on crate feature GKScore only.
pub unsafe fn scores(&self) -> Option<Retained<NSArray<GKScore>>>
GKScore only.Scores are not valid until loadScores: has completed.
Sourcepub unsafe fn maxRange(&self) -> NSUInteger
👎Deprecated
pub unsafe fn maxRange(&self) -> NSUInteger
The maxRange which represents the size of the leaderboard is not valid until loadScores: has completed.
Sourcepub unsafe fn localPlayerScore(&self) -> Option<Retained<GKScore>>
👎DeprecatedAvailable on crate feature GKScore only.
pub unsafe fn localPlayerScore(&self) -> Option<Retained<GKScore>>
GKScore only.The local player’s score
Sourcepub unsafe fn isLoading(&self) -> bool
👎Deprecated
pub unsafe fn isLoading(&self) -> bool
This property is true if the leaderboard is currently loading
Sourcepub unsafe fn initWithPlayers(
this: Allocated<Self>,
players: &NSArray<GKPlayer>,
) -> Retained<Self>
👎DeprecatedAvailable on crate features GKBasePlayer and GKPlayer only.
pub unsafe fn initWithPlayers( this: Allocated<Self>, players: &NSArray<GKPlayer>, ) -> Retained<Self>
GKBasePlayer and GKPlayer only.Specify an array of GKPlayers. For example, the players who are in a match together Defaults to AllTime score, if you want to change the timeScope, set the property before loading the scores. Range and playerScope are not applicable. players may not be nil.
Sourcepub unsafe fn loadScoresWithCompletionHandler(
&self,
completion_handler: Option<&DynBlock<dyn Fn(*mut NSArray<GKScore>, *mut NSError)>>,
)
👎DeprecatedAvailable on crate features GKScore and block2 only.
pub unsafe fn loadScoresWithCompletionHandler( &self, completion_handler: Option<&DynBlock<dyn Fn(*mut NSArray<GKScore>, *mut NSError)>>, )
GKScore and block2 only.Load the scores for this leader board asynchronously. Error will be nil on success. Possible reasons for error:
- Communications problem
- Unauthenticated player
Sourcepub unsafe fn loadLeaderboardsWithCompletionHandler(
completion_handler: Option<&DynBlock<dyn Fn(*mut NSArray<GKLeaderboard>, *mut NSError)>>,
)
👎DeprecatedAvailable on crate feature block2 only.
pub unsafe fn loadLeaderboardsWithCompletionHandler( completion_handler: Option<&DynBlock<dyn Fn(*mut NSArray<GKLeaderboard>, *mut NSError)>>, )
block2 only.Loads the array of GKLeaderboard for your app Possible reasons for error:
- Communications problem
- Unauthenticated player
- Leaderboard not present
Source§impl GKLeaderboard
UI.
impl GKLeaderboard
UI.
Methods from Deref<Target = NSObject>§
Sourcepub fn doesNotRecognizeSelector(&self, sel: Sel) -> !
pub fn doesNotRecognizeSelector(&self, sel: Sel) -> !
Handle messages the object doesn’t recognize.
See Apple’s documentation for details.
Methods from Deref<Target = AnyObject>§
Sourcepub fn class(&self) -> &'static AnyClass
pub fn class(&self) -> &'static AnyClass
Dynamically find the class of this object.
§Panics
May panic if the object is invalid (which may be the case for objects
returned from unavailable init/new methods).
§Example
Check that an instance of NSObject has the precise class NSObject.
use objc2::ClassType;
use objc2::runtime::NSObject;
let obj = NSObject::new();
assert_eq!(obj.class(), NSObject::class());Sourcepub unsafe fn get_ivar<T>(&self, name: &str) -> &Twhere
T: Encode,
👎Deprecated: this is difficult to use correctly, use Ivar::load instead.
pub unsafe fn get_ivar<T>(&self, name: &str) -> &Twhere
T: Encode,
Ivar::load instead.Use Ivar::load instead.
§Safety
The object must have an instance variable with the given name, and it
must be of type T.
See Ivar::load_ptr for details surrounding this.
Sourcepub fn downcast_ref<T>(&self) -> Option<&T>where
T: DowncastTarget,
pub fn downcast_ref<T>(&self) -> Option<&T>where
T: DowncastTarget,
Attempt to downcast the object to a class of type T.
This is the reference-variant. Use Retained::downcast if you want
to convert a retained object to another type.
§Mutable classes
Some classes have immutable and mutable variants, such as NSString
and NSMutableString.
When some Objective-C API signature says it gives you an immutable class, it generally expects you to not mutate that, even though it may technically be mutable “under the hood”.
So using this method to convert a NSString to a NSMutableString,
while not unsound, is generally frowned upon unless you created the
string yourself, or the API explicitly documents the string to be
mutable.
See Apple’s documentation on mutability and on
isKindOfClass: for more details.
§Generic classes
Objective-C generics are called “lightweight generics”, and that’s because they aren’t exposed in the runtime. This makes it impossible to safely downcast to generic collections, so this is disallowed by this method.
You can, however, safely downcast to generic collections where all the
type-parameters are AnyObject.
§Panics
This works internally by calling isKindOfClass:. That means that the
object must have the instance method of that name, and an exception
will be thrown (if CoreFoundation is linked) or the process will abort
if that is not the case. In the vast majority of cases, you don’t need
to worry about this, since both root objects NSObject and
NSProxy implement this method.
§Examples
Cast an NSString back and forth from NSObject.
use objc2::rc::Retained;
use objc2_foundation::{NSObject, NSString};
let obj: Retained<NSObject> = NSString::new().into_super();
let string = obj.downcast_ref::<NSString>().unwrap();
// Or with `downcast`, if we do not need the object afterwards
let string = obj.downcast::<NSString>().unwrap();Try (and fail) to cast an NSObject to an NSString.
use objc2_foundation::{NSObject, NSString};
let obj = NSObject::new();
assert!(obj.downcast_ref::<NSString>().is_none());Try to cast to an array of strings.
use objc2_foundation::{NSArray, NSObject, NSString};
let arr = NSArray::from_retained_slice(&[NSObject::new()]);
// This is invalid and doesn't type check.
let arr = arr.downcast_ref::<NSArray<NSString>>();This fails to compile, since it would require enumerating over the array to ensure that each element is of the desired type, which is a performance pitfall.
Downcast when processing each element instead.
use objc2_foundation::{NSArray, NSObject, NSString};
let arr = NSArray::from_retained_slice(&[NSObject::new()]);
for elem in arr {
if let Some(data) = elem.downcast_ref::<NSString>() {
// handle `data`
}
}Trait Implementations§
Source§impl AsRef<AnyObject> for GKLeaderboard
impl AsRef<AnyObject> for GKLeaderboard
Source§impl AsRef<GKLeaderboard> for GKLeaderboard
impl AsRef<GKLeaderboard> for GKLeaderboard
Source§impl AsRef<NSObject> for GKLeaderboard
impl AsRef<NSObject> for GKLeaderboard
Source§impl Borrow<AnyObject> for GKLeaderboard
impl Borrow<AnyObject> for GKLeaderboard
Source§impl Borrow<NSObject> for GKLeaderboard
impl Borrow<NSObject> for GKLeaderboard
Source§impl ClassType for GKLeaderboard
impl ClassType for GKLeaderboard
Source§const NAME: &'static str = "GKLeaderboard"
const NAME: &'static str = "GKLeaderboard"
Source§type ThreadKind = <<GKLeaderboard as ClassType>::Super as ClassType>::ThreadKind
type ThreadKind = <<GKLeaderboard as ClassType>::Super as ClassType>::ThreadKind
Source§impl Debug for GKLeaderboard
impl Debug for GKLeaderboard
Source§impl Deref for GKLeaderboard
impl Deref for GKLeaderboard
Source§impl Hash for GKLeaderboard
impl Hash for GKLeaderboard
Source§impl Message for GKLeaderboard
impl Message for GKLeaderboard
Source§impl NSObjectProtocol for GKLeaderboard
impl NSObjectProtocol for GKLeaderboard
Source§fn isEqual(&self, other: Option<&AnyObject>) -> bool
fn isEqual(&self, other: Option<&AnyObject>) -> bool
Source§fn hash(&self) -> usize
fn hash(&self) -> usize
Source§fn isKindOfClass(&self, cls: &AnyClass) -> bool
fn isKindOfClass(&self, cls: &AnyClass) -> bool
Source§fn is_kind_of<T>(&self) -> bool
fn is_kind_of<T>(&self) -> bool
isKindOfClass directly, or cast your objects with AnyObject::downcast_ref