#[repr(C)]pub struct AnyObject { /* private fields */ }
Expand description
An Objective-C object.
This is slightly different from NSObject
in that it may represent an
instance of an arbitrary Objective-C class (e.g. it does not have to be
a subclass of NSObject
, so it can represent other root classes like
NSProxy
).
Retained<AnyObject>
is equivalent to Objective-C’s id _Nonnull
.
This is an opaque type that contains UnsafeCell
, and is similar to
that in that one can safely access and perform interior mutability on this
(both via msg_send!
and through ivars), so long as Rust’s mutability
rules are upheld, and that data races are avoided.
Note: This is intentionally neither Sync
, Send
, UnwindSafe
,
RefUnwindSafe
nor Unpin
, since that is something that may change
depending on the specific subclass. For example, NSAutoreleasePool
is
not Send
, it has to be deallocated on the same thread that it was
created. NSLock
is not Send
either.
Implementations§
Source§impl AnyObject
impl 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 set_class<'s>(this: &AnyObject, cls: &AnyClass) -> &'s AnyClass
pub unsafe fn set_class<'s>(this: &AnyObject, cls: &AnyClass) -> &'s AnyClass
Change the class of the object at runtime.
Returns the object’s previous class.
§Safety
The new class must:
-
Be a subclass of the object’s current class.
-
The subclass must not add any instance variables - importantly, the instance size of old and the new classes must be the same.
-
Any overridden methods on the new class must be fully compatible with the old ones.
Note that in the general case, where arbitrary parts of the program may be trying to modify the class of the object concurrently, these requirements are not actually possible to uphold.
Since usage of this function is expected to be extremely rare, and even more so trying to do it concurrently, it is recommended that you verify that the returned class is what you would expect, and if not, panic.
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 unsafe fn get_mut_ivar<T>(&mut self, name: &str) -> &mut Twhere
T: Encode,
👎Deprecated: this is difficult to use correctly, use Ivar::load_mut
instead.
pub unsafe fn get_mut_ivar<T>(&mut self, name: &str) -> &mut Twhere
T: Encode,
Ivar::load_mut
instead.Use Ivar::load_mut
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<K, V> AsRef<AnyObject> for CFDictionary<K, V>
impl<K, V> AsRef<AnyObject> for CFDictionary<K, V>
Source§impl AsRef<AnyObject> for DOMCSSRule
impl AsRef<AnyObject> for DOMCSSRule
Source§impl AsRef<AnyObject> for DOMCSSValue
impl AsRef<AnyObject> for DOMCSSValue
Source§impl AsRef<AnyObject> for DOMCharacterData
impl AsRef<AnyObject> for DOMCharacterData
Source§impl AsRef<AnyObject> for DOMDocument
impl AsRef<AnyObject> for DOMDocument
Source§impl AsRef<AnyObject> for DOMElement
impl AsRef<AnyObject> for DOMElement
Source§impl AsRef<AnyObject> for DOMHTMLElement
impl AsRef<AnyObject> for DOMHTMLElement
Source§impl AsRef<AnyObject> for DOMMouseEvent
impl AsRef<AnyObject> for DOMMouseEvent
Source§impl AsRef<AnyObject> for DOMStyleSheet
impl AsRef<AnyObject> for DOMStyleSheet
Source§impl AsRef<AnyObject> for DOMUIEvent
impl AsRef<AnyObject> for DOMUIEvent
Source§impl AsRef<AnyObject> for NSActionCell
impl AsRef<AnyObject> for NSActionCell
Source§impl AsRef<AnyObject> for NSAnimation
impl AsRef<AnyObject> for NSAnimation
Source§impl AsRef<AnyObject> for NSArrayController
impl AsRef<AnyObject> for NSArrayController
Source§impl AsRef<AnyObject> for NSAttributedString
impl AsRef<AnyObject> for NSAttributedString
Source§impl AsRef<AnyObject> for NSButtonCell
impl AsRef<AnyObject> for NSButtonCell
Source§impl AsRef<AnyObject> for NSCharacterSet
impl AsRef<AnyObject> for NSCharacterSet
Source§impl AsRef<AnyObject> for NSClassDescription
impl AsRef<AnyObject> for NSClassDescription
Source§impl AsRef<AnyObject> for NSCollectionLayoutItem
impl AsRef<AnyObject> for NSCollectionLayoutItem
Source§impl AsRef<AnyObject> for NSCollectionViewLayout
impl AsRef<AnyObject> for NSCollectionViewLayout
Source§impl AsRef<AnyObject> for NSController
impl AsRef<AnyObject> for NSController
Source§impl<KeyType, ObjectType> AsRef<AnyObject> for NSDictionary<KeyType, ObjectType>
impl<KeyType, ObjectType> AsRef<AnyObject> for NSDictionary<KeyType, ObjectType>
Source§impl AsRef<AnyObject> for NSDimension
impl AsRef<AnyObject> for NSDimension
Source§impl AsRef<AnyObject> for NSDocument
impl AsRef<AnyObject> for NSDocument
Source§impl<ObjectType> AsRef<AnyObject> for NSEnumerator<ObjectType>
impl<ObjectType> AsRef<AnyObject> for NSEnumerator<ObjectType>
Source§impl AsRef<AnyObject> for NSFontCollection
impl AsRef<AnyObject> for NSFontCollection
Source§impl AsRef<AnyObject> for NSFormatter
impl AsRef<AnyObject> for NSFormatter
Source§impl AsRef<AnyObject> for NSGestureRecognizer
impl AsRef<AnyObject> for NSGestureRecognizer
Source§impl AsRef<AnyObject> for NSImageRep
impl AsRef<AnyObject> for NSImageRep
Source§impl AsRef<AnyObject> for NSIndexSet
impl AsRef<AnyObject> for NSIndexSet
Source§impl AsRef<AnyObject> for NSInflectionRule
impl AsRef<AnyObject> for NSInflectionRule
Source§impl<AnchorType> AsRef<AnyObject> for NSLayoutAnchor<AnchorType>
impl<AnchorType> AsRef<AnyObject> for NSLayoutAnchor<AnchorType>
Source§impl AsRef<AnyObject> for NSMenuItemCell
impl AsRef<AnyObject> for NSMenuItemCell
Source§impl AsRef<AnyObject> for NSMutableAttributedString
impl AsRef<AnyObject> for NSMutableAttributedString
Source§impl AsRef<AnyObject> for NSMutableData
impl AsRef<AnyObject> for NSMutableData
Source§impl<ObjectType> AsRef<AnyObject> for NSMutableSet<ObjectType>
impl<ObjectType> AsRef<AnyObject> for NSMutableSet<ObjectType>
Source§impl AsRef<AnyObject> for NSNibConnector
impl AsRef<AnyObject> for NSNibConnector
Source§impl AsRef<AnyObject> for NSNotification
impl AsRef<AnyObject> for NSNotification
Source§impl AsRef<AnyObject> for NSNotificationCenter
impl AsRef<AnyObject> for NSNotificationCenter
Source§impl AsRef<AnyObject> for NSObjectController
impl AsRef<AnyObject> for NSObjectController
Source§impl AsRef<AnyObject> for NSOperation
impl AsRef<AnyObject> for NSOperation
Source§impl<ObjectType> AsRef<AnyObject> for NSOrderedSet<ObjectType>
impl<ObjectType> AsRef<AnyObject> for NSOrderedSet<ObjectType>
Source§impl AsRef<AnyObject> for NSParagraphStyle
impl AsRef<AnyObject> for NSParagraphStyle
Source§impl AsRef<AnyObject> for NSPersistentStoreRequest
impl AsRef<AnyObject> for NSPersistentStoreRequest
Source§impl AsRef<AnyObject> for NSPortNameServer
impl AsRef<AnyObject> for NSPortNameServer
Source§impl AsRef<AnyObject> for NSPredicate
impl AsRef<AnyObject> for NSPredicate
Source§impl AsRef<AnyObject> for NSPropertyDescription
impl AsRef<AnyObject> for NSPropertyDescription
Source§impl AsRef<AnyObject> for NSRegularExpression
impl AsRef<AnyObject> for NSRegularExpression
Source§impl AsRef<AnyObject> for NSResponder
impl AsRef<AnyObject> for NSResponder
Source§impl AsRef<AnyObject> for NSRuleEditor
impl AsRef<AnyObject> for NSRuleEditor
Source§impl AsRef<AnyObject> for NSSavePanel
impl AsRef<AnyObject> for NSSavePanel
Source§impl AsRef<AnyObject> for NSScriptCommand
impl AsRef<AnyObject> for NSScriptCommand
Source§impl AsRef<AnyObject> for NSScriptObjectSpecifier
impl AsRef<AnyObject> for NSScriptObjectSpecifier
Source§impl AsRef<AnyObject> for NSScriptWhoseTest
impl AsRef<AnyObject> for NSScriptWhoseTest
Source§impl AsRef<AnyObject> for NSScrubberArrangedView
impl AsRef<AnyObject> for NSScrubberArrangedView
Source§impl AsRef<AnyObject> for NSScrubberItemView
impl AsRef<AnyObject> for NSScrubberItemView
Source§impl AsRef<AnyObject> for NSScrubberLayout
impl AsRef<AnyObject> for NSScrubberLayout
Source§impl AsRef<AnyObject> for NSSimpleCString
impl AsRef<AnyObject> for NSSimpleCString
Source§impl AsRef<AnyObject> for NSTableView
impl AsRef<AnyObject> for NSTableView
Source§impl AsRef<AnyObject> for NSTextBlock
impl AsRef<AnyObject> for NSTextBlock
Source§impl AsRef<AnyObject> for NSTextContentManager
impl AsRef<AnyObject> for NSTextContentManager
Source§impl AsRef<AnyObject> for NSTextElement
impl AsRef<AnyObject> for NSTextElement
Source§impl AsRef<AnyObject> for NSTextField
impl AsRef<AnyObject> for NSTextField
Source§impl AsRef<AnyObject> for NSTextFieldCell
impl AsRef<AnyObject> for NSTextFieldCell
Source§impl AsRef<AnyObject> for NSTextParagraph
impl AsRef<AnyObject> for NSTextParagraph
Source§impl AsRef<AnyObject> for NSToolbarItem
impl AsRef<AnyObject> for NSToolbarItem
Source§impl AsRef<AnyObject> for NSTouchBarItem
impl AsRef<AnyObject> for NSTouchBarItem
Source§impl AsRef<AnyObject> for NSTypesetter
impl AsRef<AnyObject> for NSTypesetter
Source§impl AsRef<AnyObject> for NSURLDownload
impl AsRef<AnyObject> for NSURLDownload
Source§impl AsRef<AnyObject> for NSURLRequest
impl AsRef<AnyObject> for NSURLRequest
Source§impl AsRef<AnyObject> for NSURLResponse
impl AsRef<AnyObject> for NSURLResponse
Source§impl AsRef<AnyObject> for NSURLSessionDataTask
impl AsRef<AnyObject> for NSURLSessionDataTask
Source§impl AsRef<AnyObject> for NSURLSessionTask
impl AsRef<AnyObject> for NSURLSessionTask
Source§impl AsRef<AnyObject> for NSUnitConverter
impl AsRef<AnyObject> for NSUnitConverter
Source§impl AsRef<AnyObject> for NSUserScriptTask
impl AsRef<AnyObject> for NSUserScriptTask
Source§impl AsRef<AnyObject> for NSValueTransformer
impl AsRef<AnyObject> for NSValueTransformer
Source§impl AsRef<AnyObject> for NSViewController
impl AsRef<AnyObject> for NSViewController
Source§impl AsRef<AnyObject> for NSVisualEffectView
impl AsRef<AnyObject> for NSVisualEffectView
Source§impl AsRef<AnyObject> for WebScriptObject
impl AsRef<AnyObject> for WebScriptObject
Source§impl<K, V> Borrow<AnyObject> for CFDictionary<K, V>
impl<K, V> Borrow<AnyObject> for CFDictionary<K, V>
Source§impl Borrow<AnyObject> for DOMCSSRule
impl Borrow<AnyObject> for DOMCSSRule
Source§impl Borrow<AnyObject> for DOMCSSValue
impl Borrow<AnyObject> for DOMCSSValue
Source§impl Borrow<AnyObject> for DOMCharacterData
impl Borrow<AnyObject> for DOMCharacterData
Source§impl Borrow<AnyObject> for DOMDocument
impl Borrow<AnyObject> for DOMDocument
Source§impl Borrow<AnyObject> for DOMElement
impl Borrow<AnyObject> for DOMElement
Source§impl Borrow<AnyObject> for DOMHTMLElement
impl Borrow<AnyObject> for DOMHTMLElement
Source§impl Borrow<AnyObject> for DOMMouseEvent
impl Borrow<AnyObject> for DOMMouseEvent
Source§impl Borrow<AnyObject> for DOMStyleSheet
impl Borrow<AnyObject> for DOMStyleSheet
Source§impl Borrow<AnyObject> for DOMUIEvent
impl Borrow<AnyObject> for DOMUIEvent
Source§impl Borrow<AnyObject> for NSActionCell
impl Borrow<AnyObject> for NSActionCell
Source§impl Borrow<AnyObject> for NSAnimation
impl Borrow<AnyObject> for NSAnimation
Source§impl Borrow<AnyObject> for NSArrayController
impl Borrow<AnyObject> for NSArrayController
Source§impl Borrow<AnyObject> for NSAttributedString
impl Borrow<AnyObject> for NSAttributedString
Source§impl Borrow<AnyObject> for NSButtonCell
impl Borrow<AnyObject> for NSButtonCell
Source§impl Borrow<AnyObject> for NSCharacterSet
impl Borrow<AnyObject> for NSCharacterSet
Source§impl Borrow<AnyObject> for NSClassDescription
impl Borrow<AnyObject> for NSClassDescription
Source§impl Borrow<AnyObject> for NSCollectionLayoutItem
impl Borrow<AnyObject> for NSCollectionLayoutItem
Source§impl Borrow<AnyObject> for NSCollectionViewLayout
impl Borrow<AnyObject> for NSCollectionViewLayout
Source§impl Borrow<AnyObject> for NSController
impl Borrow<AnyObject> for NSController
Source§impl<KeyType, ObjectType> Borrow<AnyObject> for NSDictionary<KeyType, ObjectType>
impl<KeyType, ObjectType> Borrow<AnyObject> for NSDictionary<KeyType, ObjectType>
Source§impl Borrow<AnyObject> for NSDimension
impl Borrow<AnyObject> for NSDimension
Source§impl Borrow<AnyObject> for NSDocument
impl Borrow<AnyObject> for NSDocument
Source§impl<ObjectType> Borrow<AnyObject> for NSEnumerator<ObjectType>
impl<ObjectType> Borrow<AnyObject> for NSEnumerator<ObjectType>
Source§impl Borrow<AnyObject> for NSFontCollection
impl Borrow<AnyObject> for NSFontCollection
Source§impl Borrow<AnyObject> for NSFormatter
impl Borrow<AnyObject> for NSFormatter
Source§impl Borrow<AnyObject> for NSGestureRecognizer
impl Borrow<AnyObject> for NSGestureRecognizer
Source§impl Borrow<AnyObject> for NSImageRep
impl Borrow<AnyObject> for NSImageRep
Source§impl Borrow<AnyObject> for NSIndexSet
impl Borrow<AnyObject> for NSIndexSet
Source§impl Borrow<AnyObject> for NSInflectionRule
impl Borrow<AnyObject> for NSInflectionRule
Source§impl<AnchorType> Borrow<AnyObject> for NSLayoutAnchor<AnchorType>
impl<AnchorType> Borrow<AnyObject> for NSLayoutAnchor<AnchorType>
Source§impl Borrow<AnyObject> for NSMenuItemCell
impl Borrow<AnyObject> for NSMenuItemCell
Source§impl Borrow<AnyObject> for NSMutableAttributedString
impl Borrow<AnyObject> for NSMutableAttributedString
Source§impl Borrow<AnyObject> for NSMutableData
impl Borrow<AnyObject> for NSMutableData
Source§impl<ObjectType> Borrow<AnyObject> for NSMutableSet<ObjectType>
impl<ObjectType> Borrow<AnyObject> for NSMutableSet<ObjectType>
Source§impl Borrow<AnyObject> for NSNibConnector
impl Borrow<AnyObject> for NSNibConnector
Source§impl Borrow<AnyObject> for NSNotification
impl Borrow<AnyObject> for NSNotification
Source§impl Borrow<AnyObject> for NSNotificationCenter
impl Borrow<AnyObject> for NSNotificationCenter
Source§impl Borrow<AnyObject> for NSObjectController
impl Borrow<AnyObject> for NSObjectController
Source§impl Borrow<AnyObject> for NSOperation
impl Borrow<AnyObject> for NSOperation
Source§impl<ObjectType> Borrow<AnyObject> for NSOrderedSet<ObjectType>
impl<ObjectType> Borrow<AnyObject> for NSOrderedSet<ObjectType>
Source§impl Borrow<AnyObject> for NSParagraphStyle
impl Borrow<AnyObject> for NSParagraphStyle
Source§impl Borrow<AnyObject> for NSPersistentStoreRequest
impl Borrow<AnyObject> for NSPersistentStoreRequest
Source§impl Borrow<AnyObject> for NSPortNameServer
impl Borrow<AnyObject> for NSPortNameServer
Source§impl Borrow<AnyObject> for NSPredicate
impl Borrow<AnyObject> for NSPredicate
Source§impl Borrow<AnyObject> for NSPropertyDescription
impl Borrow<AnyObject> for NSPropertyDescription
Source§impl Borrow<AnyObject> for NSRegularExpression
impl Borrow<AnyObject> for NSRegularExpression
Source§impl Borrow<AnyObject> for NSResponder
impl Borrow<AnyObject> for NSResponder
Source§impl Borrow<AnyObject> for NSRuleEditor
impl Borrow<AnyObject> for NSRuleEditor
Source§impl Borrow<AnyObject> for NSSavePanel
impl Borrow<AnyObject> for NSSavePanel
Source§impl Borrow<AnyObject> for NSScriptCommand
impl Borrow<AnyObject> for NSScriptCommand
Source§impl Borrow<AnyObject> for NSScriptObjectSpecifier
impl Borrow<AnyObject> for NSScriptObjectSpecifier
Source§impl Borrow<AnyObject> for NSScriptWhoseTest
impl Borrow<AnyObject> for NSScriptWhoseTest
Source§impl Borrow<AnyObject> for NSScrubberArrangedView
impl Borrow<AnyObject> for NSScrubberArrangedView
Source§impl Borrow<AnyObject> for NSScrubberItemView
impl Borrow<AnyObject> for NSScrubberItemView
Source§impl Borrow<AnyObject> for NSScrubberLayout
impl Borrow<AnyObject> for NSScrubberLayout
Source§impl Borrow<AnyObject> for NSSimpleCString
impl Borrow<AnyObject> for NSSimpleCString
Source§impl Borrow<AnyObject> for NSTableView
impl Borrow<AnyObject> for NSTableView
Source§impl Borrow<AnyObject> for NSTextBlock
impl Borrow<AnyObject> for NSTextBlock
Source§impl Borrow<AnyObject> for NSTextContentManager
impl Borrow<AnyObject> for NSTextContentManager
Source§impl Borrow<AnyObject> for NSTextElement
impl Borrow<AnyObject> for NSTextElement
Source§impl Borrow<AnyObject> for NSTextField
impl Borrow<AnyObject> for NSTextField
Source§impl Borrow<AnyObject> for NSTextFieldCell
impl Borrow<AnyObject> for NSTextFieldCell
Source§impl Borrow<AnyObject> for NSTextParagraph
impl Borrow<AnyObject> for NSTextParagraph
Source§impl Borrow<AnyObject> for NSToolbarItem
impl Borrow<AnyObject> for NSToolbarItem
Source§impl Borrow<AnyObject> for NSTouchBarItem
impl Borrow<AnyObject> for NSTouchBarItem
Source§impl Borrow<AnyObject> for NSTypesetter
impl Borrow<AnyObject> for NSTypesetter
Source§impl Borrow<AnyObject> for NSURLDownload
impl Borrow<AnyObject> for NSURLDownload
Source§impl Borrow<AnyObject> for NSURLRequest
impl Borrow<AnyObject> for NSURLRequest
Source§impl Borrow<AnyObject> for NSURLResponse
impl Borrow<AnyObject> for NSURLResponse
Source§impl Borrow<AnyObject> for NSURLSessionDataTask
impl Borrow<AnyObject> for NSURLSessionDataTask
Source§impl Borrow<AnyObject> for NSURLSessionTask
impl Borrow<AnyObject> for NSURLSessionTask
Source§impl Borrow<AnyObject> for NSUnitConverter
impl Borrow<AnyObject> for NSUnitConverter
Source§impl Borrow<AnyObject> for NSUserScriptTask
impl Borrow<AnyObject> for NSUserScriptTask
Source§impl Borrow<AnyObject> for NSValueTransformer
impl Borrow<AnyObject> for NSValueTransformer
Source§impl Borrow<AnyObject> for NSViewController
impl Borrow<AnyObject> for NSViewController
Source§impl Borrow<AnyObject> for NSVisualEffectView
impl Borrow<AnyObject> for NSVisualEffectView
Source§impl Borrow<AnyObject> for WebScriptObject
impl Borrow<AnyObject> for WebScriptObject
Source§impl MessageReceiver for &mut AnyObject
&mut AnyObject
is allowed as mutable, for easier transition from objc
,
even though it’s basically always incorrect to hold &mut AnyObject
.
impl MessageReceiver for &mut AnyObject
&mut AnyObject
is allowed as mutable, for easier transition from objc
,
even though it’s basically always incorrect to hold &mut AnyObject
.
Use *mut AnyObject
instead if you know for certain you need mutability,
and cannot make do with interior mutability.