#[repr(C)]pub struct WebArchive { /* private fields */ }
WebArchive
only.Expand description
WebArchive represents a main resource as well as all the subresources and subframes associated with the main resource. The main resource can be an entire web page, a portion of a web page, or some other kind of data such as an image. This class can be used for saving standalone web pages, representing portions of a web page on the pasteboard, or any other application where one class is needed to represent rich web content.
See also Appleโs documentation
Implementationsยง
Sourceยงimpl WebArchive
impl WebArchive
Sourcepub unsafe fn initWithMainResource_subresources_subframeArchives(
this: Allocated<Self>,
main_resource: Option<&WebResource>,
subresources: Option<&NSArray>,
subframe_archives: Option<&NSArray>,
) -> Option<Retained<Self>>
๐DeprecatedAvailable on crate feature WebResource
only.
pub unsafe fn initWithMainResource_subresources_subframeArchives( this: Allocated<Self>, main_resource: Option<&WebResource>, subresources: Option<&NSArray>, subframe_archives: Option<&NSArray>, ) -> Option<Retained<Self>>
WebResource
only.The initializer for WebArchive.
Parameter mainResource
: The main resource of the archive.
Parameter subresources
: The subresources of the archive (can be nil).
Parameter subframeArchives
: The archives representing the subframes of the archive (can be nil).
Returns: An initialized WebArchive.
Sourcepub unsafe fn initWithData(
this: Allocated<Self>,
data: Option<&NSData>,
) -> Option<Retained<Self>>
๐Deprecated
pub unsafe fn initWithData( this: Allocated<Self>, data: Option<&NSData>, ) -> Option<Retained<Self>>
The initializer for creating a WebArchive from data.
Parameter data
: The data representing the archive. This can be obtained using WebArchiveโs data method.
Returns: An initialized WebArchive.
Sourcepub unsafe fn mainResource(&self) -> Option<Retained<WebResource>>
๐DeprecatedAvailable on crate feature WebResource
only.
pub unsafe fn mainResource(&self) -> Option<Retained<WebResource>>
WebResource
only.The main resource of the archive.
Sourcepub unsafe fn subresources(&self) -> Retained<NSArray>
๐Deprecated
pub unsafe fn subresources(&self) -> Retained<NSArray>
The subresource of the archive (can be nil).
Sourcepub unsafe fn subframeArchives(&self) -> Retained<NSArray>
๐Deprecated
pub unsafe fn subframeArchives(&self) -> Retained<NSArray>
The archives representing the subframes of the archive (can be nil).
Sourcepub unsafe fn data(&self) -> Retained<NSData>
๐Deprecated
pub unsafe fn data(&self) -> Retained<NSData>
The data representation of the archive.
The data returned by this method can be used to save a web archive to a file or to place a web archive on the pasteboard using WebArchivePboardType. To create a WebArchive using the returned data, call initWithData:.
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.
ยง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 WebArchive
impl AsRef<AnyObject> for WebArchive
Sourceยงimpl AsRef<NSObject> for WebArchive
impl AsRef<NSObject> for WebArchive
Sourceยงimpl AsRef<WebArchive> for WebArchive
impl AsRef<WebArchive> for WebArchive
Sourceยงimpl Borrow<AnyObject> for WebArchive
impl Borrow<AnyObject> for WebArchive
Sourceยงimpl Borrow<NSObject> for WebArchive
impl Borrow<NSObject> for WebArchive
Sourceยงimpl ClassType for WebArchive
impl ClassType for WebArchive
Sourceยงconst NAME: &'static str = "WebArchive"
const NAME: &'static str = "WebArchive"
Sourceยงtype ThreadKind = <<WebArchive as ClassType>::Super as ClassType>::ThreadKind
type ThreadKind = <<WebArchive as ClassType>::Super as ClassType>::ThreadKind
Sourceยงimpl CopyingHelper for WebArchive
impl CopyingHelper for WebArchive
Sourceยงtype Result = WebArchive
type Result = WebArchive
Self
if the type has no
immutable counterpart. Read moreSourceยงimpl Debug for WebArchive
impl Debug for WebArchive
Sourceยงimpl Deref for WebArchive
impl Deref for WebArchive
Sourceยงimpl Hash for WebArchive
impl Hash for WebArchive
Sourceยงimpl Message for WebArchive
impl Message for WebArchive
Sourceยงimpl NSCoding for WebArchive
impl NSCoding for WebArchive
Sourceยงimpl NSCopying for WebArchive
impl NSCopying for WebArchive
Sourceยงimpl NSObjectProtocol for WebArchive
impl NSObjectProtocol for WebArchive
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