pub struct GKGameActivity { /* private fields */ }
GKGameActivity
only.Expand description
GKGameActivity
represents a single instance of a game activity for the current game.
See also Apple’s documentation
Implementations§
Source§impl GKGameActivity
impl GKGameActivity
Sourcepub unsafe fn identifier(&self) -> Retained<NSString>
pub unsafe fn identifier(&self) -> Retained<NSString>
The identifier of this activity instance.
This property is not atomic.
§Safety
This might not be thread-safe.
Sourcepub unsafe fn activityDefinition(&self) -> Retained<GKGameActivityDefinition>
Available on crate feature GKGameActivityDefinition
only.
pub unsafe fn activityDefinition(&self) -> Retained<GKGameActivityDefinition>
GKGameActivityDefinition
only.The activity definition that this activity instance is based on.
This property is not atomic.
§Safety
This might not be thread-safe.
Sourcepub unsafe fn properties(&self) -> Retained<NSDictionary<NSString, NSString>>
pub unsafe fn properties(&self) -> Retained<NSDictionary<NSString, NSString>>
Properties that contain additional information about the activity.
This takes precedence over the defaultProperties
on the activityDefinition
.
- This dictionary is initialized with the default properties from the activity definition and deep linked properties if any.
- If deep linking contains the same key as the default properties, the deep linked value will override the default value.
- The properties can be updated at runtime.
This property is not atomic.
§Safety
This might not be thread-safe.
Sourcepub unsafe fn setProperties(
&self,
properties: &NSDictionary<NSString, NSString>,
)
pub unsafe fn setProperties( &self, properties: &NSDictionary<NSString, NSString>, )
Sourcepub unsafe fn state(&self) -> GKGameActivityState
Available on crate feature GKGameActivityState
only.
pub unsafe fn state(&self) -> GKGameActivityState
GKGameActivityState
only.Sourcepub unsafe fn partyCode(&self) -> Option<Retained<NSString>>
pub unsafe fn partyCode(&self) -> Option<Retained<NSString>>
If the game supports party code, this is the party code that can be shared among players to join the party.
If the game does not support party code, this value will be nil.
- SeeAlso:
-[GKGameActivity startWithDefinition:partyCode:completionHandler:]
for creating a game activity with a custom party code.
This property is not atomic.
§Safety
This might not be thread-safe.
Sourcepub unsafe fn partyURL(&self) -> Option<Retained<NSURL>>
pub unsafe fn partyURL(&self) -> Option<Retained<NSURL>>
If the game supports party code, this is the URL that can be shared among players to join the party.
This property is not atomic.
§Safety
This might not be thread-safe.
Sourcepub unsafe fn creationDate(&self) -> Retained<NSDate>
pub unsafe fn creationDate(&self) -> Retained<NSDate>
The date when the activity was created.
This property is not atomic.
§Safety
This might not be thread-safe.
Sourcepub unsafe fn startDate(&self) -> Option<Retained<NSDate>>
pub unsafe fn startDate(&self) -> Option<Retained<NSDate>>
The date when the activity was initially started.
This property is not atomic.
§Safety
This might not be thread-safe.
Sourcepub unsafe fn lastResumeDate(&self) -> Option<Retained<NSDate>>
pub unsafe fn lastResumeDate(&self) -> Option<Retained<NSDate>>
The date when the activity was last resumed.
- If the activity was first started, this will be the same as the start date.
- If the activity was paused and resumed, this will be the date when the activity was resumed.
This property is not atomic.
§Safety
This might not be thread-safe.
Sourcepub unsafe fn endDate(&self) -> Option<Retained<NSDate>>
pub unsafe fn endDate(&self) -> Option<Retained<NSDate>>
The date when the activity was officially ended.
This property is not atomic.
§Safety
This might not be thread-safe.
Sourcepub unsafe fn duration(&self) -> NSTimeInterval
pub unsafe fn duration(&self) -> NSTimeInterval
Total time elapsed while in active state.
This property is not atomic.
§Safety
This might not be thread-safe.
Sourcepub unsafe fn achievements(&self) -> Retained<NSSet<GKAchievement>>
Available on crate feature GKAchievement
only.
pub unsafe fn achievements(&self) -> Retained<NSSet<GKAchievement>>
GKAchievement
only.All achievements that have been associated with this activity.
Progress of each achievement will be reported when the activity ends.
This property is not atomic.
§Safety
This might not be thread-safe.
Sourcepub unsafe fn leaderboardScores(&self) -> Retained<NSSet<GKLeaderboardScore>>
Available on crate feature GKLeaderboardScore
only.
pub unsafe fn leaderboardScores(&self) -> Retained<NSSet<GKLeaderboardScore>>
GKLeaderboardScore
only.All leaderboard scores that have been associated with this activity.
Scores will be submitted to the leaderboards when the activity ends.
This property is not atomic.
§Safety
This might not be thread-safe.
Sourcepub unsafe fn validPartyCodeAlphabet() -> Retained<NSArray<NSString>>
pub unsafe fn validPartyCodeAlphabet() -> Retained<NSArray<NSString>>
Allowed characters for the party code to be used to share this activity.
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>
Sourcepub unsafe fn startWithDefinition_partyCode_error(
activity_definition: &GKGameActivityDefinition,
party_code: &NSString,
) -> Result<Retained<GKGameActivity>, Retained<NSError>>
Available on crate feature GKGameActivityDefinition
only.
pub unsafe fn startWithDefinition_partyCode_error( activity_definition: &GKGameActivityDefinition, party_code: &NSString, ) -> Result<Retained<GKGameActivity>, Retained<NSError>>
GKGameActivityDefinition
only.Creates and starts a new game activity with a custom party code.
The party code will be converted to uppercased.
Sourcepub unsafe fn startWithDefinition_error(
activity_definition: &GKGameActivityDefinition,
) -> Result<Retained<GKGameActivity>, Retained<NSError>>
Available on crate feature GKGameActivityDefinition
only.
pub unsafe fn startWithDefinition_error( activity_definition: &GKGameActivityDefinition, ) -> Result<Retained<GKGameActivity>, Retained<NSError>>
GKGameActivityDefinition
only.Initializes and starts a game activity with definition.
Sourcepub unsafe fn isValidPartyCode(party_code: &NSString) -> bool
pub unsafe fn isValidPartyCode(party_code: &NSString) -> bool
Checks whether a party code is in valid format.
Party code should be two parts of strings with the same length (2-6) connected with a dash, and the code can be either pure digits (0-9), or both parts are uppercased characters from validPartyCodeAlphabet
.
- SeeAlso:
validPartyCodeAlphabet
for allowed characters.
Sourcepub unsafe fn initWithDefinition(
this: Allocated<Self>,
activity_definition: &GKGameActivityDefinition,
) -> Retained<Self>
Available on crate feature GKGameActivityDefinition
only.
pub unsafe fn initWithDefinition( this: Allocated<Self>, activity_definition: &GKGameActivityDefinition, ) -> Retained<Self>
GKGameActivityDefinition
only.Initializes a game activity with definition.
Sourcepub unsafe fn end(&self)
pub unsafe fn end(&self)
Ends the game activity if it is not already ended.
This will report all associated achievements and submit scores to leaderboards.
Sourcepub unsafe fn setScoreOnLeaderboard_toScore_context(
&self,
leaderboard: &GKLeaderboard,
score: NSInteger,
context: NSUInteger,
)
Available on crate feature GKLeaderboard
only.
pub unsafe fn setScoreOnLeaderboard_toScore_context( &self, leaderboard: &GKLeaderboard, score: NSInteger, context: NSUInteger, )
GKLeaderboard
only.Set a score of a leaderboard with a context for a player.
The score will be submitted to the leaderboard when the activity ends.
Sourcepub unsafe fn setScoreOnLeaderboard_toScore(
&self,
leaderboard: &GKLeaderboard,
score: NSInteger,
)
Available on crate feature GKLeaderboard
only.
pub unsafe fn setScoreOnLeaderboard_toScore( &self, leaderboard: &GKLeaderboard, score: NSInteger, )
GKLeaderboard
only.Set a score of a leaderboard for a player.
The score will be submitted to the leaderboard when the activity ends.
Sourcepub unsafe fn getScoreOnLeaderboard(
&self,
leaderboard: &GKLeaderboard,
) -> Option<Retained<GKLeaderboardScore>>
Available on crate features GKLeaderboard
and GKLeaderboardScore
only.
pub unsafe fn getScoreOnLeaderboard( &self, leaderboard: &GKLeaderboard, ) -> Option<Retained<GKLeaderboardScore>>
GKLeaderboard
and GKLeaderboardScore
only.Get the leaderboard score from a specific leaderboard of the local player if previously set.
Sourcepub unsafe fn removeScoresFromLeaderboards(
&self,
leaderboards: &NSArray<GKLeaderboard>,
)
Available on crate feature GKLeaderboard
only.
pub unsafe fn removeScoresFromLeaderboards( &self, leaderboards: &NSArray<GKLeaderboard>, )
GKLeaderboard
only.Removes all scores from leaderboards for a player if exist.
Sourcepub unsafe fn setProgressOnAchievement_toPercentComplete(
&self,
achievement: &GKAchievement,
percent_complete: c_double,
)
Available on crate feature GKAchievement
only.
pub unsafe fn setProgressOnAchievement_toPercentComplete( &self, achievement: &GKAchievement, percent_complete: c_double, )
GKAchievement
only.Set a progress for an achievement for a player.
Achievement progress will be reported when the activity ends.
Sourcepub unsafe fn setAchievementCompleted(&self, achievement: &GKAchievement)
Available on crate feature GKAchievement
only.
pub unsafe fn setAchievementCompleted(&self, achievement: &GKAchievement)
GKAchievement
only.Convenience method to set a progress to 100% for an achievement for a player.
Achievement completion will be reported when the activity ends.
Sourcepub unsafe fn getProgressOnAchievement(
&self,
achievement: &GKAchievement,
) -> c_double
Available on crate feature GKAchievement
only.
pub unsafe fn getProgressOnAchievement( &self, achievement: &GKAchievement, ) -> c_double
GKAchievement
only.Get the achievement progress from a specific achievement of the local player if previously set.
Returns 0 if the achievement has not been set in the current activity.
Sourcepub unsafe fn removeAchievements(&self, achievements: &NSArray<GKAchievement>)
Available on crate feature GKAchievement
only.
pub unsafe fn removeAchievements(&self, achievements: &NSArray<GKAchievement>)
GKAchievement
only.Removes all achievements if exist.
Source§impl GKGameActivity
Methods declared on superclass NSObject
.
impl GKGameActivity
Methods declared on superclass NSObject
.
Source§impl GKGameActivity
Multiplayer.
impl GKGameActivity
Multiplayer.
Sourcepub unsafe fn makeMatchRequest(&self) -> Option<Retained<GKMatchRequest>>
Available on crate feature GKMatchmaker
only.
pub unsafe fn makeMatchRequest(&self) -> Option<Retained<GKMatchRequest>>
GKMatchmaker
only.Makes a GKMatchRequest
object with information from the activity, which can be used to find matches for the local player.
Sourcepub unsafe fn findMatchWithCompletionHandler(
&self,
completion_handler: &DynBlock<dyn Fn(*mut GKMatch, *mut NSError)>,
)
Available on crate features GKMatch
and block2
only.
pub unsafe fn findMatchWithCompletionHandler( &self, completion_handler: &DynBlock<dyn Fn(*mut GKMatch, *mut NSError)>, )
GKMatch
and block2
only.Use information from the activity to find matches for the local player.
GameKit will create a classic match making request with the activity’s party code and other information, and return the match object in the completion handler or any error that occurred. Error occurs if this activity doesn’t support party code, or has unsupported range of players, which is used to be configured as match request’s minPlayers and maxPlayers.
Sourcepub unsafe fn findPlayersForHostedMatchWithCompletionHandler(
&self,
completion_handler: &DynBlock<dyn Fn(*mut NSArray<GKPlayer>, *mut NSError)>,
)
Available on crate features GKBasePlayer
and GKPlayer
and block2
only.
pub unsafe fn findPlayersForHostedMatchWithCompletionHandler( &self, completion_handler: &DynBlock<dyn Fn(*mut NSArray<GKPlayer>, *mut NSError)>, )
GKBasePlayer
and GKPlayer
and block2
only.Use information from the activity to find server hosted players for the local player.
GameKit will create a classic server hosted match making request with the activity’s party code and other information, and return the players in the completion handler or any error that occurred. Error occurs if this activity doesn’t support party code, or has unsupported range of players, which is used to be configured as match request’s minPlayers and maxPlayers.
Source§impl GKGameActivity
State.
impl GKGameActivity
State.
Sourcepub unsafe fn checkPendingGameActivityExistenceWithCompletionHandler(
completion_handler: &DynBlock<dyn Fn(Bool)>,
)
Available on crate feature block2
only.
pub unsafe fn checkPendingGameActivityExistenceWithCompletionHandler( completion_handler: &DynBlock<dyn Fn(Bool)>, )
block2
only.Checks whether there is a pending activity to handle for the current game.
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 GKGameActivity
impl AsRef<AnyObject> for GKGameActivity
Source§impl AsRef<GKGameActivity> for GKGameActivity
impl AsRef<GKGameActivity> for GKGameActivity
Source§impl AsRef<NSObject> for GKGameActivity
impl AsRef<NSObject> for GKGameActivity
Source§impl Borrow<AnyObject> for GKGameActivity
impl Borrow<AnyObject> for GKGameActivity
Source§impl Borrow<NSObject> for GKGameActivity
impl Borrow<NSObject> for GKGameActivity
Source§impl ClassType for GKGameActivity
impl ClassType for GKGameActivity
Source§const NAME: &'static str = "GKGameActivity"
const NAME: &'static str = "GKGameActivity"
Source§type ThreadKind = <<GKGameActivity as ClassType>::Super as ClassType>::ThreadKind
type ThreadKind = <<GKGameActivity as ClassType>::Super as ClassType>::ThreadKind
Source§impl Debug for GKGameActivity
impl Debug for GKGameActivity
Source§impl Deref for GKGameActivity
impl Deref for GKGameActivity
Source§impl Hash for GKGameActivity
impl Hash for GKGameActivity
Source§impl Message for GKGameActivity
impl Message for GKGameActivity
Source§impl NSObjectProtocol for GKGameActivity
impl NSObjectProtocol for GKGameActivity
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