pub struct ASAccessorySession { /* private fields */ }ASAccessorySession only.Expand description
Manages accessories.
See also Apple’s documentation
Implementations§
Source§impl ASAccessorySession
impl ASAccessorySession
Sourcepub unsafe fn accessories(&self) -> Retained<NSArray<ASAccessory>>
Available on crate feature ASAccessory only.
pub unsafe fn accessories(&self) -> Retained<NSArray<ASAccessory>>
ASAccessory only.An array of previously-selected accessories for this application.
To monitor for changes in this list, use your event handler to watch for the events ASAccessoryEventType/accessoryAdded, ASAccessoryEventType/accessoryChanged, and ASAccessoryEventType/accessoryRemoved.
This property is not atomic.
§Safety
This might not be thread-safe.
Sourcepub unsafe fn pickerDisplaySettings(
&self,
) -> Option<Retained<ASPickerDisplaySettings>>
Available on crate feature ASPickerDisplaySettings only.
pub unsafe fn pickerDisplaySettings( &self, ) -> Option<Retained<ASPickerDisplaySettings>>
ASPickerDisplaySettings only.Settings that affect the display of the accessory picker.
Use this property to configure settings like the picker timeout.
This property is not atomic.
§Safety
This might not be thread-safe.
Sourcepub unsafe fn setPickerDisplaySettings(
&self,
picker_display_settings: Option<&ASPickerDisplaySettings>,
)
Available on crate feature ASPickerDisplaySettings only.
pub unsafe fn setPickerDisplaySettings( &self, picker_display_settings: Option<&ASPickerDisplaySettings>, )
ASPickerDisplaySettings only.Sourcepub unsafe fn activateWithQueue_eventHandler(
&self,
queue: &DispatchQueue,
event_handler: &DynBlock<dyn Fn(NonNull<ASAccessoryEvent>)>,
)
Available on crate features ASAccessoryEvent and block2 and dispatch2 only.
pub unsafe fn activateWithQueue_eventHandler( &self, queue: &DispatchQueue, event_handler: &DynBlock<dyn Fn(NonNull<ASAccessoryEvent>)>, )
ASAccessoryEvent and block2 and dispatch2 only.Activate the session and start delivering events to an event handler.
- Parameters:
- queue: The dispatch the session uses to deliver events to
eventHandler. - eventHandler: A closure or block that receives events generated by the session. Each callback to the event handler provides an
ASAccessoryEventas a parameter, and expects no return value.
§Safety
queue possibly has additional threading requirements.
Sourcepub unsafe fn invalidate(&self)
pub unsafe fn invalidate(&self)
Invalidate the session by stopping any operations.
This call breaks any retain cycles. The session is unusable after calling invalidate.
Sourcepub unsafe fn showPickerWithCompletionHandler(
&self,
completion_handler: &DynBlock<dyn Fn(*mut NSError)>,
)
Available on crate feature block2 only.
pub unsafe fn showPickerWithCompletionHandler( &self, completion_handler: &DynBlock<dyn Fn(*mut NSError)>, )
block2 only.Present a picker that shows accessories managed by a Device Discovery Extension in your app.
Use this method when your app includes a
<doc
://com.apple.documentation/documentation/devicediscoveryextension> for its supported accessories. If your app doesn’t use DDE, call showPickerForDisplayItems:completionHandler: with an array of ASPickerDisplayItem-c.class instances instead.
The session’s event handler receives events when this picker displays and dismisses, as well as when the person using the app picks an accessory.
- Parameters:
- completionHandler: A block or closure that the picker calls when it completes the operation. The completion handler receives an <doc ://com.apple.documentation/documentation/Foundation/NSError> instance if the picker encounters an error.
Sourcepub unsafe fn showPickerForDisplayItems_completionHandler(
&self,
display_items: &NSArray<ASPickerDisplayItem>,
completion_handler: &DynBlock<dyn Fn(*mut NSError)>,
)
Available on crate features ASPickerDisplayItem and block2 only.
pub unsafe fn showPickerForDisplayItems_completionHandler( &self, display_items: &NSArray<ASPickerDisplayItem>, completion_handler: &DynBlock<dyn Fn(*mut NSError)>, )
ASPickerDisplayItem and block2 only.Present a picker that shows discovered accessories matching an array of display items.
The session’s event handler receives events when this picker displays and dismisses, as well as when the person using the app picks an accessory.
To migrate previously-configured accessories to AccessorySetupKit, add instances of ASMigrationDisplayItem to the displayItems array.
- Parameters:
- displayItems: An array of
ASPickerDisplayIteminstances describing accessories your app can set up. The picker displays only discovered accessories that match the properties of items in this array. - completionHandler: A block or closure that the picker calls when it completes the operation. The completion handler receives an <doc ://com.apple.documentation/documentation/Foundation/NSError> instance if the picker encounters an error.
Sourcepub unsafe fn finishAuthorization_settings_completionHandler(
&self,
accessory: &ASAccessory,
settings: &ASAccessorySettings,
completion_handler: &DynBlock<dyn Fn(*mut NSError)>,
)
Available on crate features ASAccessory and ASAccessorySettings and block2 only.
pub unsafe fn finishAuthorization_settings_completionHandler( &self, accessory: &ASAccessory, settings: &ASAccessorySettings, completion_handler: &DynBlock<dyn Fn(*mut NSError)>, )
ASAccessory and ASAccessorySettings and block2 only.Finish authorization of a partially-setup accessory.
Use this method in scenarios where an accessory has multiple wireless interfaces. For example, when an accessory has both Bluetooth and Wi-Fi, and your descriptor may only provides an SSID prefix. In this case, the Bluetooth interface onboards first and your app needs to then finish authorization with the full SSID.
Sourcepub unsafe fn failAuthorization_completionHandler(
&self,
accessory: &ASAccessory,
completion_handler: &DynBlock<dyn Fn(*mut NSError)>,
)
Available on crate features ASAccessory and block2 only.
pub unsafe fn failAuthorization_completionHandler( &self, accessory: &ASAccessory, completion_handler: &DynBlock<dyn Fn(*mut NSError)>, )
ASAccessory and block2 only.End authorization of a partially-configured accessory as a failure.
Sourcepub unsafe fn removeAccessory_completionHandler(
&self,
accessory: &ASAccessory,
completion_handler: &DynBlock<dyn Fn(*mut NSError)>,
)
Available on crate features ASAccessory and block2 only.
pub unsafe fn removeAccessory_completionHandler( &self, accessory: &ASAccessory, completion_handler: &DynBlock<dyn Fn(*mut NSError)>, )
ASAccessory and block2 only.Removes an accessory.
- Parameters:
- accessory: The accessory to remove.
- completionHandler: A block or closure that executes after the remove operation completes. The completion handler receives an <doc ://com.apple.documentation/documentation/Foundation/NSError> instance if the remove operation encounters an error.
Sourcepub unsafe fn renameAccessory_options_completionHandler(
&self,
accessory: &ASAccessory,
rename_options: ASAccessoryRenameOptions,
completion_handler: &DynBlock<dyn Fn(*mut NSError)>,
)
Available on crate features ASAccessory and block2 only.
pub unsafe fn renameAccessory_options_completionHandler( &self, accessory: &ASAccessory, rename_options: ASAccessoryRenameOptions, completion_handler: &DynBlock<dyn Fn(*mut NSError)>, )
ASAccessory and block2 only.Displays a view to rename an accessory.
To rename a Wi-Fi SSID with this method, use the option ASAccessory/RenameOptions/ssid.
- Parameters:
- accessory: The accessory to rename.
- renameOptions: Options that affect the behavior of the rename operation.
- completionHandler: A block or closure that executes after the rename operation completes. The completion handler receives an <doc ://com.apple.documentation/documentation/Foundation/NSError> instance if the rename operation encounters an error.
Sourcepub unsafe fn updateAuthorization_descriptor_completionHandler(
&self,
accessory: &ASAccessory,
descriptor: &ASDiscoveryDescriptor,
completion_handler: &DynBlock<dyn Fn(*mut NSError)>,
)
Available on crate features ASAccessory and ASDiscoveryDescriptor and block2 only.
pub unsafe fn updateAuthorization_descriptor_completionHandler( &self, accessory: &ASAccessory, descriptor: &ASDiscoveryDescriptor, completion_handler: &DynBlock<dyn Fn(*mut NSError)>, )
ASAccessory and ASDiscoveryDescriptor and block2 only.Displays a view to upgrade an accessory with additional technology permissions.
Call this method to upgrade previously-added SSID-based accessories to use WiFi Aware.
- Parameters:
- accessory: The accessory to update.
- descriptor: An updated descriptor that the picker uses to add new technology authorization for the provided accessory.
- completionHandler: A block or closure that executes after the picker is shown. The completion handler receives an <doc ://com.apple.documentation/documentation/Foundation/NSError> instance if the upgrade operation encounters an error. In Swift, you can omit the completion handler by calling the method asynchronously and catching any error thrown by the method.
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<ASAccessorySession> for ASAccessorySession
impl AsRef<ASAccessorySession> for ASAccessorySession
Source§impl AsRef<AnyObject> for ASAccessorySession
impl AsRef<AnyObject> for ASAccessorySession
Source§impl AsRef<NSObject> for ASAccessorySession
impl AsRef<NSObject> for ASAccessorySession
Source§impl Borrow<AnyObject> for ASAccessorySession
impl Borrow<AnyObject> for ASAccessorySession
Source§impl Borrow<NSObject> for ASAccessorySession
impl Borrow<NSObject> for ASAccessorySession
Source§impl ClassType for ASAccessorySession
impl ClassType for ASAccessorySession
Source§const NAME: &'static str = "ASAccessorySession"
const NAME: &'static str = "ASAccessorySession"
Source§type ThreadKind = <<ASAccessorySession as ClassType>::Super as ClassType>::ThreadKind
type ThreadKind = <<ASAccessorySession as ClassType>::Super as ClassType>::ThreadKind
Source§impl Debug for ASAccessorySession
impl Debug for ASAccessorySession
Source§impl Deref for ASAccessorySession
impl Deref for ASAccessorySession
Source§impl Hash for ASAccessorySession
impl Hash for ASAccessorySession
Source§impl Message for ASAccessorySession
impl Message for ASAccessorySession
Source§impl NSObjectProtocol for ASAccessorySession
impl NSObjectProtocol for ASAccessorySession
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