Documentation Archive Developer
Search

ReplayKit Changes for Swift

ReplayKit

DeclarationProtocols
From
class RPPreviewViewController : UIViewController {
    weak var previewControllerDelegate: RPPreviewViewControllerDelegate?
}
--
To
class RPPreviewViewController : UIViewController {
    weak var previewControllerDelegate: RPPreviewViewControllerDelegate?
    var mode: RPPreviewViewControllerMode
    var tabBarItem: UITabBarItem!
    var tabBarController: UITabBarController? { get }
    var splitViewController: UISplitViewController? { get }
    func collapseSecondaryViewController(_ secondaryViewController: UIViewController, for splitViewController: UISplitViewController)
    func separateSecondaryViewController(for splitViewController: UISplitViewController) -> UIViewController?
    var transitionCoordinator: UIViewControllerTransitionCoordinator? { get }
    var isModalInPopover: Bool
    var contentSizeForViewInPopover: CGSize
    var toolbarItems: [UIBarButtonItem]?
    func setToolbarItems(_ toolbarItems: [UIBarButtonItem]?, animated animated: Bool)
    var navigationItem: UINavigationItem { get }
    var hidesBottomBarWhenPushed: Bool
    var navigationController: UINavigationController? { get }
    var previewActionItems: [UIPreviewActionItem] { get }
    func registerForPreviewing(with delegate: UIViewControllerPreviewingDelegate, sourceView sourceView: UIView) -> UIViewControllerPreviewing
    func unregisterForPreviewing(withContext previewing: UIViewControllerPreviewing)
    var presentationController: UIPresentationController? { get }
    var popoverPresentationController: UIPopoverPresentationController? { get }
    func addKeyCommand(_ keyCommand: UIKeyCommand)
    func removeKeyCommand(_ keyCommand: UIKeyCommand)
    var topLayoutGuide: UILayoutSupport { get }
    var bottomLayoutGuide: UILayoutSupport { get }
    weak var transitioningDelegate: UIViewControllerTransitioningDelegate?
    func updateViewConstraints()
    func automaticallyForwardAppearanceAndRotationMethodsToChildViewControllers() -> Bool
    func shouldAutomaticallyForwardRotationMethods() -> Bool
    var shouldAutomaticallyForwardAppearanceMethods: Bool { get }
    func willMove(toParentViewController parent: UIViewController?)
    func didMove(toParentViewController parent: UIViewController?)
    var childViewControllers: [UIViewController] { get }
    func addChildViewController(_ childController: UIViewController)
    func removeFromParentViewController()
    func transition(from fromViewController: UIViewController, to toViewController: UIViewController, duration duration: TimeInterval, options options: UIViewAnimationOptions = [], animations animations: (@escaping () -> Void)?, completion completion: (@escaping (Bool) -> Void)? = nil)
    func beginAppearanceTransition(_ isAppearing: Bool, animated animated: Bool)
    func endAppearanceTransition()
    var childViewControllerForStatusBarStyle: UIViewController? { get }
    var childViewControllerForStatusBarHidden: UIViewController? { get }
    func setOverrideTraitCollection(_ collection: UITraitCollection?, forChildViewController childViewController: UIViewController)
    func overrideTraitCollection(forChildViewController childViewController: UIViewController) -> UITraitCollection?
    var searchDisplayController: UISearchDisplayController? { get }
    var isEditing: Bool
    func setEditing(_ editing: Bool, animated animated: Bool)
    var editButtonItem: UIBarButtonItem { get }
    class func attemptRotationToDeviceOrientation()
    func shouldAutorotate(to toInterfaceOrientation: UIInterfaceOrientation) -> Bool
    var shouldAutorotate: Bool { get }
    var supportedInterfaceOrientations: UIInterfaceOrientationMask { get }
    var preferredInterfaceOrientationForPresentation: UIInterfaceOrientation { get }
    func rotatingHeaderView() -> UIView?
    func rotatingFooterView() -> UIView?
    var interfaceOrientation: UIInterfaceOrientation { get }
    func willRotate(to toInterfaceOrientation: UIInterfaceOrientation, duration duration: TimeInterval)
    func didRotate(from fromInterfaceOrientation: UIInterfaceOrientation)
    func willAnimateRotation(to toInterfaceOrientation: UIInterfaceOrientation, duration duration: TimeInterval)
    func willAnimateFirstHalfOfRotation(to toInterfaceOrientation: UIInterfaceOrientation, duration duration: TimeInterval)
    func didAnimateFirstHalfOfRotation(to toInterfaceOrientation: UIInterfaceOrientation)
    func willAnimateSecondHalfOfRotation(from fromInterfaceOrientation: UIInterfaceOrientation, duration duration: TimeInterval)
    var userActivity: NSUserActivity?
    func updateUserActivityState(_ activity: NSUserActivity)
    func restoreUserActivityState(_ activity: NSUserActivity)
    var inputView: UIView? { get }
    var inputAccessoryView: UIView? { get }
    var inputAssistantItem: UITextInputAssistantItem { get }
    var inputViewController: UIInputViewController? { get }
    var inputAccessoryViewController: UIInputViewController? { get }
    var textInputMode: UITextInputMode? { get }
    var textInputContextIdentifier: String? { get }
    class func clearTextInputContextIdentifier(_ identifier: String)
    func reloadInputViews()
    var keyCommands: [UIKeyCommand]? { get }
    func awakeFromNib()
    func prepareForInterfaceBuilder()
    func accessibilityActivate() -> Bool
    func accessibilityIncrement()
    func accessibilityDecrement()
    func accessibilityScroll(_ direction: UIAccessibilityScrollDirection) -> Bool
    func accessibilityPerformEscape() -> Bool
    func accessibilityPerformMagicTap() -> Bool
    var accessibilityCustomActions: [UIAccessibilityCustomAction]?
    func accessibilityElementDidBecomeFocused()
    func accessibilityElementDidLoseFocus()
    func accessibilityElementIsFocused() -> Bool
    func accessibilityAssistiveTechnologyFocusedIdentifiers() -> Set<String>?
    func accessibilityElementCount() -> Int
    func accessibilityElement(at index: Int) -> Any?
    func index(ofAccessibilityElement element: Any) -> Int
    var accessibilityElements: [Any]?
    var isAccessibilityElement: Bool
    var accessibilityLabel: String?
    var accessibilityHint: String?
    var accessibilityValue: String?
    var accessibilityTraits: UIAccessibilityTraits
    var accessibilityFrame: CGRect
    @NSCopying var accessibilityPath: UIBezierPath?
    var accessibilityActivationPoint: CGPoint
    var accessibilityLanguage: String?
    var accessibilityElementsHidden: Bool
    var accessibilityViewIsModal: Bool
    var shouldGroupAccessibilityChildren: Bool
    var accessibilityNavigationStyle: UIAccessibilityNavigationStyle
    var accessibilityHeaderElements: [Any]?
    var accessibilityCustomRotors: [UIAccessibilityCustomRotor]?
    func performSelector(onMainThread aSelector: Selector, with arg: Any?, waitUntilDone wait: Bool, modes array: [String]?)
    func performSelector(onMainThread aSelector: Selector, with arg: Any?, waitUntilDone wait: Bool)
    func perform(_ aSelector: Selector, on thr: Thread, with arg: Any?, waitUntilDone wait: Bool, modes array: [String]?)
    func perform(_ aSelector: Selector, on thr: Thread, with arg: Any?, waitUntilDone wait: Bool)
    func performSelector(inBackground aSelector: Selector, with arg: Any?)
    class func classForKeyedUnarchiver() -> AnyClass
    var classForKeyedArchiver: AnyClass? { get }
    func replacementObject(for archiver: NSKeyedArchiver) -> Any?
    class func classFallbacksForKeyedArchiver() -> [String]
    class func keyPathsForValuesAffectingValue(forKey key: String) -> Set<String>
    class func automaticallyNotifiesObservers(forKey key: String) -> Bool
    var observationInfo: UnsafeMutableRawPointer?
    func willChangeValue(forKey key: String)
    func didChangeValue(forKey key: String)
    func willChange(_ changeKind: NSKeyValueChange, valuesAt indexes: IndexSet, forKey key: String)
    func didChange(_ changeKind: NSKeyValueChange, valuesAt indexes: IndexSet, forKey key: String)
    func willChangeValue(forKey key: String, withSetMutation mutationKind: NSKeyValueSetMutationKind, using objects: Set<AnyHashable>)
    func didChangeValue(forKey key: String, withSetMutation mutationKind: NSKeyValueSetMutationKind, using objects: Set<AnyHashable>)
    func addObserver(_ observer: NSObject, forKeyPath keyPath: String, options options: NSKeyValueObservingOptions = [], context context: UnsafeMutableRawPointer?)
    func removeObserver(_ observer: NSObject, forKeyPath keyPath: String, context context: UnsafeMutableRawPointer?)
    func removeObserver(_ observer: NSObject, forKeyPath keyPath: String)
    func observeValue(forKeyPath keyPath: String?, of object: Any?, change change: [NSKeyValueChangeKey : Any]?, context context: UnsafeMutableRawPointer?)
    class var accessInstanceVariablesDirectly: Bool { get }
    func value(forKey key: String) -> Any?
    func setValue(_ value: Any?, forKey key: String)
    func validateValue(_ ioValue: AutoreleasingUnsafeMutablePointer<AnyObject?>, forKey inKey: String) throws
    func mutableArrayValue(forKey key: String) -> NSMutableArray
    func mutableOrderedSetValue(forKey key: String) -> NSMutableOrderedSet
    func mutableSetValue(forKey key: String) -> NSMutableSet
    func value(forKeyPath keyPath: String) -> Any?
    func setValue(_ value: Any?, forKeyPath keyPath: String)
    func validateValue(_ ioValue: AutoreleasingUnsafeMutablePointer<AnyObject?>, forKeyPath inKeyPath: String) throws
    func mutableArrayValue(forKeyPath keyPath: String) -> NSMutableArray
    func mutableOrderedSetValue(forKeyPath keyPath: String) -> NSMutableOrderedSet
    func mutableSetValue(forKeyPath keyPath: String) -> NSMutableSet
    func value(forUndefinedKey key: String) -> Any?
    func setValue(_ value: Any?, forUndefinedKey key: String)
    func setNilValueForKey(_ key: String)
    func dictionaryWithValues(forKeys keys: [String]) -> [String : Any]
    func setValuesForKeys(_ keyedValues: [String : Any])
    func fileManager(_ fm: FileManager, shouldProceedAfterError errorInfo: [AnyHashable : Any]) -> Bool
    func fileManager(_ fm: FileManager, willProcessPath path: String)
    func perform(_ aSelector: Selector, with anArgument: Any?, afterDelay delay: TimeInterval, inModes modes: [RunLoopMode])
    func perform(_ aSelector: Selector, with anArgument: Any?, afterDelay delay: TimeInterval)
    class func cancelPreviousPerformRequests(withTarget aTarget: Any, selector aSelector: Selector, object anArgument: Any?)
    class func cancelPreviousPerformRequests(withTarget aTarget: Any)
    func attemptRecovery(fromError error: Error, optionIndex recoveryOptionIndex: Int, delegate delegate: Any?, didRecoverSelector didRecoverSelector: Selector?, contextInfo contextInfo: UnsafeMutableRawPointer?)
    func attemptRecovery(fromError error: Error, optionIndex recoveryOptionIndex: Int) -> Bool
    var autoContentAccessingProxy: Any { get }
    class func version() -> Int
    class func setVersion(_ aVersion: Int)
    var classForCoder: AnyClass { get }
    func awakeAfter(using aDecoder: NSCoder) -> Any?
    func provideImageData(_ data: UnsafeMutableRawPointer, bytesPerRow rowbytes: Int, origin x: Int, _ y: Int, size width: Int, _ height: Int, userInfo info: Any?)
}
extension RPPreviewViewController : NSExtensionRequestHandling {
    var extensionContext: NSExtensionContext? { get }
}
extension RPPreviewViewController : UIStateRestoring {
    var restorationIdentifier: String?
    var restorationClass: UIViewControllerRestoration.Type?
    func encodeRestorableState(with coder: NSCoder)
    func decodeRestorableState(with coder: NSCoder)
    func applicationFinishedRestoringState()
}
extension RPPreviewViewController : CVarArg {
}
extension RPPreviewViewController : Equatable, Hashable {
    var hashValue: Int { get }
}
CVarArg, Equatable, Hashable, NSExtensionRequestHandling, UIStateRestoring

Declaration
From
enum RPRecordingErrorCode : Int {
    case Unknown
    case UserDeclined
    case Disabled
    case FailedToStart
    case Failed
    case InsufficientStorage
    case Interrupted
    case ContentResize
}
To
enum RPRecordingErrorCode : Int {
    case unknown
    case userDeclined
    case disabled
    case failedToStart
    case failed
    case insufficientStorage
    case interrupted
    case contentResize
    case broadcastInvalidSession
    case systemDormancy
}

Declaration
From
case ContentResize
To
case contentResize

Declaration
From
case Disabled
To
case disabled

Declaration
From
case Failed
To
case failed

Declaration
From
case FailedToStart
To
case failedToStart

Declaration
From
case InsufficientStorage
To
case insufficientStorage

Declaration
From
case Interrupted
To
case interrupted

Declaration
From
case Unknown
To
case unknown

Declaration
From
case UserDeclined
To
case userDeclined

DeclarationProtocols
From
class RPScreenRecorder : NSObject {
    class func sharedRecorder() -> RPScreenRecorder
    init?()
    class func new() -> Self?
    func startRecordingWithMicrophoneEnabled(_ microphoneEnabled: Bool, handler handler: ((NSError?) -> Void)?)
    func stopRecordingWithHandler(_ handler: ((RPPreviewViewController?, NSError?) -> Void)?)
    func discardRecordingWithHandler(_ handler: () -> Void)
    weak var delegate: RPScreenRecorderDelegate?
    var recording: Bool { get }
    var microphoneEnabled: Bool { get }
    var available: Bool { get }
}
--
To
class RPScreenRecorder : NSObject {
    class func shared() -> RPScreenRecorder
    init()
    func startRecording(withMicrophoneEnabled microphoneEnabled: Bool, handler handler: (@escaping (Error?) -> Swift.Void)? = nil)
    func startRecording(handler handler: (@escaping (Error?) -> Swift.Void)? = nil)
    func stopRecording(handler handler: (@escaping (RPPreviewViewController?, Error?) -> Swift.Void)? = nil)
    func discardRecording(handler handler: @escaping () -> Swift.Void)
    weak var delegate: RPScreenRecorderDelegate?
    var isAvailable: Bool { get }
    var isRecording: Bool { get }
    var isMicrophoneEnabled: Bool
    var isCameraEnabled: Bool
    var cameraPreviewView: UIView? { get }
    func awakeFromNib()
    func prepareForInterfaceBuilder()
    func accessibilityActivate() -> Bool
    func accessibilityIncrement()
    func accessibilityDecrement()
    func accessibilityScroll(_ direction: UIAccessibilityScrollDirection) -> Bool
    func accessibilityPerformEscape() -> Bool
    func accessibilityPerformMagicTap() -> Bool
    var accessibilityCustomActions: [UIAccessibilityCustomAction]?
    func accessibilityElementDidBecomeFocused()
    func accessibilityElementDidLoseFocus()
    func accessibilityElementIsFocused() -> Bool
    func accessibilityAssistiveTechnologyFocusedIdentifiers() -> Set<String>?
    func accessibilityElementCount() -> Int
    func accessibilityElement(at index: Int) -> Any?
    func index(ofAccessibilityElement element: Any) -> Int
    var accessibilityElements: [Any]?
    var isAccessibilityElement: Bool
    var accessibilityLabel: String?
    var accessibilityHint: String?
    var accessibilityValue: String?
    var accessibilityTraits: UIAccessibilityTraits
    var accessibilityFrame: CGRect
    @NSCopying var accessibilityPath: UIBezierPath?
    var accessibilityActivationPoint: CGPoint
    var accessibilityLanguage: String?
    var accessibilityElementsHidden: Bool
    var accessibilityViewIsModal: Bool
    var shouldGroupAccessibilityChildren: Bool
    var accessibilityNavigationStyle: UIAccessibilityNavigationStyle
    var accessibilityHeaderElements: [Any]?
    var accessibilityCustomRotors: [UIAccessibilityCustomRotor]?
    func performSelector(onMainThread aSelector: Selector, with arg: Any?, waitUntilDone wait: Bool, modes array: [String]?)
    func performSelector(onMainThread aSelector: Selector, with arg: Any?, waitUntilDone wait: Bool)
    func perform(_ aSelector: Selector, on thr: Thread, with arg: Any?, waitUntilDone wait: Bool, modes array: [String]?)
    func perform(_ aSelector: Selector, on thr: Thread, with arg: Any?, waitUntilDone wait: Bool)
    func performSelector(inBackground aSelector: Selector, with arg: Any?)
    class func classForKeyedUnarchiver() -> AnyClass
    var classForKeyedArchiver: AnyClass? { get }
    func replacementObject(for archiver: NSKeyedArchiver) -> Any?
    class func classFallbacksForKeyedArchiver() -> [String]
    class func keyPathsForValuesAffectingValue(forKey key: String) -> Set<String>
    class func automaticallyNotifiesObservers(forKey key: String) -> Bool
    var observationInfo: UnsafeMutableRawPointer?
    func willChangeValue(forKey key: String)
    func didChangeValue(forKey key: String)
    func willChange(_ changeKind: NSKeyValueChange, valuesAt indexes: IndexSet, forKey key: String)
    func didChange(_ changeKind: NSKeyValueChange, valuesAt indexes: IndexSet, forKey key: String)
    func willChangeValue(forKey key: String, withSetMutation mutationKind: NSKeyValueSetMutationKind, using objects: Set<AnyHashable>)
    func didChangeValue(forKey key: String, withSetMutation mutationKind: NSKeyValueSetMutationKind, using objects: Set<AnyHashable>)
    func addObserver(_ observer: NSObject, forKeyPath keyPath: String, options options: NSKeyValueObservingOptions = [], context context: UnsafeMutableRawPointer?)
    func removeObserver(_ observer: NSObject, forKeyPath keyPath: String, context context: UnsafeMutableRawPointer?)
    func removeObserver(_ observer: NSObject, forKeyPath keyPath: String)
    func observeValue(forKeyPath keyPath: String?, of object: Any?, change change: [NSKeyValueChangeKey : Any]?, context context: UnsafeMutableRawPointer?)
    class var accessInstanceVariablesDirectly: Bool { get }
    func value(forKey key: String) -> Any?
    func setValue(_ value: Any?, forKey key: String)
    func validateValue(_ ioValue: AutoreleasingUnsafeMutablePointer<AnyObject?>, forKey inKey: String) throws
    func mutableArrayValue(forKey key: String) -> NSMutableArray
    func mutableOrderedSetValue(forKey key: String) -> NSMutableOrderedSet
    func mutableSetValue(forKey key: String) -> NSMutableSet
    func value(forKeyPath keyPath: String) -> Any?
    func setValue(_ value: Any?, forKeyPath keyPath: String)
    func validateValue(_ ioValue: AutoreleasingUnsafeMutablePointer<AnyObject?>, forKeyPath inKeyPath: String) throws
    func mutableArrayValue(forKeyPath keyPath: String) -> NSMutableArray
    func mutableOrderedSetValue(forKeyPath keyPath: String) -> NSMutableOrderedSet
    func mutableSetValue(forKeyPath keyPath: String) -> NSMutableSet
    func value(forUndefinedKey key: String) -> Any?
    func setValue(_ value: Any?, forUndefinedKey key: String)
    func setNilValueForKey(_ key: String)
    func dictionaryWithValues(forKeys keys: [String]) -> [String : Any]
    func setValuesForKeys(_ keyedValues: [String : Any])
    func fileManager(_ fm: FileManager, shouldProceedAfterError errorInfo: [AnyHashable : Any]) -> Bool
    func fileManager(_ fm: FileManager, willProcessPath path: String)
    func perform(_ aSelector: Selector, with anArgument: Any?, afterDelay delay: TimeInterval, inModes modes: [RunLoopMode])
    func perform(_ aSelector: Selector, with anArgument: Any?, afterDelay delay: TimeInterval)
    class func cancelPreviousPerformRequests(withTarget aTarget: Any, selector aSelector: Selector, object anArgument: Any?)
    class func cancelPreviousPerformRequests(withTarget aTarget: Any)
    func attemptRecovery(fromError error: Error, optionIndex recoveryOptionIndex: Int, delegate delegate: Any?, didRecoverSelector didRecoverSelector: Selector?, contextInfo contextInfo: UnsafeMutableRawPointer?)
    func attemptRecovery(fromError error: Error, optionIndex recoveryOptionIndex: Int) -> Bool
    var autoContentAccessingProxy: Any { get }
    class func version() -> Int
    class func setVersion(_ aVersion: Int)
    var classForCoder: AnyClass { get }
    func awakeAfter(using aDecoder: NSCoder) -> Any?
    func provideImageData(_ data: UnsafeMutableRawPointer, bytesPerRow rowbytes: Int, origin x: Int, _ y: Int, size width: Int, _ height: Int, userInfo info: Any?)
}
extension RPScreenRecorder : CVarArg {
}
extension RPScreenRecorder : Equatable, Hashable {
    var hashValue: Int { get }
}
CVarArg, Equatable, Hashable

Declaration
From
func discardRecordingWithHandler(_ handler: () -> Void)
To
func discardRecording(handler handler: @escaping () -> Swift.Void)

Declaration
From
var available: Bool { get }
To
var isAvailable: Bool { get }

DeclarationReadonly
From
var microphoneEnabled: Bool { get }
yes
To
var isMicrophoneEnabled: Bool
--

Declaration
From
var recording: Bool { get }
To
var isRecording: Bool { get }

Declaration
From
class func sharedRecorder() -> RPScreenRecorder
To
class func shared() -> RPScreenRecorder

DeclarationDeprecation
From
func startRecordingWithMicrophoneEnabled(_ microphoneEnabled: Bool, handler handler: ((NSError?) -> Void)?)
--
To
func startRecording(withMicrophoneEnabled microphoneEnabled: Bool, handler handler: (@escaping (Error?) -> Swift.Void)? = nil)
iOS 10.0

Declaration
From
func stopRecordingWithHandler(_ handler: ((RPPreviewViewController?, NSError?) -> Void)?)
To
func stopRecording(handler handler: (@escaping (RPPreviewViewController?, Error?) -> Swift.Void)? = nil)

Declaration
From
protocol RPScreenRecorderDelegate : NSObjectProtocol {
    optional func screenRecorder(_ screenRecorder: RPScreenRecorder, didStopRecordingWithError error: NSError, previewViewController previewViewController: RPPreviewViewController?)
    optional func screenRecorderDidChangeAvailability(_ screenRecorder: RPScreenRecorder)
}
To
protocol RPScreenRecorderDelegate : NSObjectProtocol {
    optional func screenRecorder(_ screenRecorder: RPScreenRecorder, didStopRecordingWithError error: Error, previewViewController previewViewController: RPPreviewViewController?)
    optional func screenRecorderDidChangeAvailability(_ screenRecorder: RPScreenRecorder)
}

Declaration
From
optional func screenRecorder(_ screenRecorder: RPScreenRecorder, didStopRecordingWithError error: NSError, previewViewController previewViewController: RPPreviewViewController?)
To
optional func screenRecorder(_ screenRecorder: RPScreenRecorder, didStopRecordingWithError error: Error, previewViewController previewViewController: RPPreviewViewController?)