SBSDKUIPageFileStorage

@interface SBSDKUIPageFileStorage : NSObject

A class to store and restore images in a memory-efficient way. Stores added images on disk and restores them if requested. Can generate preview images of optimal resolution for the devices screen. Manages two types of images: original images (as from camera or photo library) and document images (cropped and perspective-corrected). Helps you efficiently managing and persisting larger images without keeping them in memory.

Caution: Since all images stored here are being persisted to the disk forever, you are responsible for removing unused images.

  • Not available. Use ‘defaultStorage’.

    Declaration

    Objective-C

    - (nonnull instancetype)init;
  • Not available. Use ‘defaultStorage’.

    Declaration

    Objective-C

    + (nonnull instancetype)new;
  • Initializes storage with given image file format and default JPEG compression quality using the default storage location.

    Declaration

    Objective-C

    - (nonnull instancetype)initWithImageFileFormat:(SBSDKImageFileFormat)format;

    Swift

    init(imageFileFormat format: SBSDKImageFileFormat)

    Parameters

    format

    image file format.

    Return Value

    An instance of storage.

  • Initializes storage with JPEG image file format and given JPEG compression quality using the default storage location.

    Declaration

    Objective-C

    - (nonnull instancetype)initWithJPEGFileFormatAndCompressionQuality:
        (NSInteger)jpegImageCompressionQuality;

    Swift

    init(jpegFileFormatAndCompressionQuality jpegImageCompressionQuality: Int)

    Parameters

    jpegImageCompressionQuality

    JPEG compression quality.

    Return Value

    An instance of storage.

  • Initializes storage with given image file format and default JPEG compression quality.

    Declaration

    Objective-C

    - (nonnull instancetype)
        initWithImageFileFormat:(SBSDKImageFileFormat)format
                       location:(nullable SBSDKStorageLocation *)location;

    Swift

    init(imageFileFormat format: SBSDKImageFileFormat, location: SBSDKStorageLocation?)

    Parameters

    format

    image file format.

    location

    The storage location where image files are saved to. If nil, the default location is chosen.

    Return Value

    An instance of storage.

  • Initializes storage with JPEG image file format and given JPEG compression quality.

    Declaration

    Objective-C

    - (nonnull instancetype)
        initWithJPEGFileFormatAndCompressionQuality:
            (NSInteger)jpegImageCompressionQuality
                                           location:
                                               (nullable SBSDKStorageLocation *)
                                                   location;

    Swift

    init(jpegFileFormatAndCompressionQuality jpegImageCompressionQuality: Int, location: SBSDKStorageLocation?)

    Parameters

    jpegImageCompressionQuality

    JPEG compression quality.

    location

    The storage location where image files are saved to. If nil, the default location is chosen.

    Return Value

    An instance of storage.

  • The default instance of this class. *

    Declaration

    Objective-C

    + (nonnull instancetype)defaultStorage;

    Swift

    class func `default`() -> Self
  • Set default storage. If not used, default storage will be created with default parameters.

    Declaration

    Objective-C

    + (void)setDefaultStorage:(nonnull SBSDKUIPageFileStorage *)defaultStorage;

    Swift

    class func setDefault(_ defaultStorage: SBSDKUIPageFileStorage)
  • If file format is set to JPEG, this property holds the compression quality of the stored images. Values must be between 0 (high compression, small file size, bad quality) and 100 (no compression, huge file size, good image quality). Read-only. Defaults to 80.

    Declaration

    Objective-C

    @property (nonatomic, readonly) NSInteger writingJpegImageCompressionQuality;

    Swift

    var writingJpegImageCompressionQuality: Int { get }
  • File format of the stored images. Read-only. Defaults to JPEG.

    Declaration

    Objective-C

    @property (nonatomic, readonly) SBSDKImageFileFormat writingImageFileFormat;

    Swift

    var writingImageFileFormat: SBSDKImageFileFormat { get }
  • Adds an original image to the receiver.

    Declaration

    Objective-C

    - (nullable NSUUID *)addImage:(nonnull UIImage *)image;

    Swift

    func add(_ image: UIImage) -> UUID?

    Parameters

    image

    The UIImage instance to manage.

    Return Value

    The uuid of the added image that can be used to reference the image.

  • Replaces or sets an image with given page file ID and type. Use this function to update the document image.

    Caution: Setting/replacing the original image is not allowed and will result in an error!

    Declaration

    Objective-C

    - (BOOL)setImage:(nonnull UIImage *)image
        forExistingPageFileID:(nonnull NSUUID *)pageFileID
                 pageFileType:(SBSDKUIPageFileType)type
                        error:(NSError *_Nullable *_Nullable)error;

    Swift

    func setImage(_ image: UIImage, forExistingPageFileID pageFileID: UUID, pageFileType type: SBSDKUIPageFileType) throws

    Parameters

    image

    The new image to store.

    pageFileID

    The existing ID of the original image in the receiver. Returns an error if the ID does not exist in the receiver.

    type

    The type of the image to replace/set. Must not be ‘SBSDKUIPageFileTypeOriginal’.

    error

    An error pointer containing the error (if any) after the call.

    Return Value

    YES, if the operation was successful, NO otherwise.

  • Returns the URL of the full resolution image with given page file ID of given type.

    Declaration

    Objective-C

    - (nullable NSURL *)imageURLWithPageFileID:(nonnull NSUUID *)pageFileID
                                  pageFileType:(SBSDKUIPageFileType)type;

    Swift

    func imageURL(withPageFileID pageFileID: UUID, pageFileType type: SBSDKUIPageFileType) -> URL?

    Parameters

    pageFileID

    The page file ID of the requested image.

    type

    The type of the image.

    Return Value

    A URL pointing to the image file. Or nil if the image was not found.

  • Returns the full resolution image with given page file ID of given type.

    Declaration

    Objective-C

    - (nullable UIImage *)imageWithPageFileID:(nonnull NSUUID *)pageFileID
                                 pageFileType:(SBSDKUIPageFileType)type;

    Swift

    func image(withPageFileID pageFileID: UUID, pageFileType type: SBSDKUIPageFileType) -> UIImage?

    Parameters

    pageFileID

    The page file ID of the requested image.

    type

    The type of the image.

    Return Value

    An UIImage or nil if the image was not found.

  • Returns the URL of the preview resolution image with given page file ID of given type.

    Declaration

    Objective-C

    - (nullable NSURL *)previewImageURLWithPageFileID:(nonnull NSUUID *)pageFileID
                                         pageFileType:(SBSDKUIPageFileType)type;

    Swift

    func previewImageURL(withPageFileID pageFileID: UUID, pageFileType type: SBSDKUIPageFileType) -> URL?

    Parameters

    pageFileID

    The page file ID of the requested image.

    type

    The type of the image.

    Return Value

    A URL pointing to the image file. Or nil if the image was not found.

  • Returns the preview resolution image with given page file ID of given type.

    Declaration

    Objective-C

    - (nullable UIImage *)previewImageWithPageFileID:(nonnull NSUUID *)pageFileID
                                        pageFileType:(SBSDKUIPageFileType)type;

    Swift

    func previewImage(withPageFileID pageFileID: UUID, pageFileType type: SBSDKUIPageFileType) -> UIImage?

    Parameters

    pageFileID

    The page file ID of the requested image.

    type

    The type of the image.

    Return Value

    An UIImage or nil if the image was not found.

  • Removes stored images of given type with the given page file ID.

    Declaration

    Objective-C

    - (BOOL)removeImageForExistingPageFileID:(nonnull NSUUID *)pageFileID
                                pageFileType:(SBSDKUIPageFileType)type;

    Swift

    func removeImage(forExistingPageFileID pageFileID: UUID, pageFileType type: SBSDKUIPageFileType) -> Bool

    Parameters

    pageFileID

    The page file ID which should be removed from the receiver.

    type

    The type of image to be removed. Images of type ‘SBSDKUIPageFileTypeOriginal’ cannot be removed.

    Return Value

    YES, if the operation successful, NO otherwise.

  • Removes stored images of all types with the given page file ID.

    Declaration

    Objective-C

    - (void)removePageFileID:(nonnull NSUUID *)pageFileID;

    Swift

    func removePageFileID(_ pageFileID: UUID)

    Parameters

    pageFileID

    The page file ID which should be removed from the receiver.

  • Removes all stored images of all types except those from the exception list.

    Declaration

    Objective-C

    - (void)removeAllExceptPageFileIDs:(nonnull NSArray<NSUUID *> *)pageFileIDs;

    Swift

    func removeAllExceptPageFileIDs(_ pageFileIDs: [UUID])

    Parameters

    pageFileIDs

    The page file IDs of the images which should not be removed.

  • Clears the receiver. Removes all stored images files from disk.

    Declaration

    Objective-C

    - (void)removeAll;

    Swift

    func removeAll()
  • Returns all available IDs in storage

    Declaration

    Objective-C

    - (nonnull NSArray<NSUUID *> *)allPageFileIDs;

    Swift

    func allPageFileIDs() -> [UUID]