Guides and Sample Code Developer
Search

StoreKit Changes for Swift

StoreKit

Modified SKDownload
DeclarationProtocols
From
class SKDownload : NSObject {
    var contentIdentifier: String { get }
    var state: SKDownloadState { get }
    @NSCopying var contentURL: NSURL? { get }
    var progress: Float { get }
    @NSCopying var error: NSError? { get }
    var timeRemaining: NSTimeInterval { get }
    @NSCopying var contentLength: NSNumber { get }
    var contentVersion: String? { get }
    var transaction: SKPaymentTransaction? { get }
    class func contentURLForProductID(_ productID: String) -> NSURL?
    class func deleteContentForProductID(_ productID: String)
}
--
To
class SKDownload : NSObject {
    var contentIdentifier: String { get }
    var state: SKDownloadState { get }
    var contentURL: URL? { get }
    var progress: Float { get }
    var error: Error? { get }
    var timeRemaining: TimeInterval { get }
    @NSCopying var contentLength: NSNumber { get }
    var contentVersion: String { get }
    var transaction: SKPaymentTransaction { get }
    class func contentURL(forProductID productID: String) -> URL?
    class func deleteContent(forProductID productID: String)
    func scriptingIsEqual(to object: Any) -> Bool
    func scriptingIsLessThanOrEqual(to object: Any) -> Bool
    func scriptingIsLessThan(_ object: Any) -> Bool
    func scriptingIsGreaterThanOrEqual(to object: Any) -> Bool
    func scriptingIsGreaterThan(_ object: Any) -> Bool
    func scriptingBegins(with object: Any) -> Bool
    func scriptingEnds(with object: Any) -> Bool
    func scriptingContains(_ object: Any) -> Bool
    func isEqual(to object: Any?) -> Bool
    func isLessThanOrEqual(to object: Any?) -> Bool
    func isLessThan(_ object: Any?) -> Bool
    func isGreaterThanOrEqual(to object: Any?) -> Bool
    func isGreaterThan(_ object: Any?) -> Bool
    func isNotEqual(to object: Any?) -> Bool
    func doesContain(_ object: Any) -> Bool
    func isLike(_ object: String) -> Bool
    func isCaseInsensitiveLike(_ object: String) -> Bool
    var objectSpecifier: NSScriptObjectSpecifier? { get }
    func indicesOfObjects(byEvaluatingObjectSpecifier specifier: NSScriptObjectSpecifier) -> [NSNumber]?
    func value(at index: Int, inPropertyWithKey key: String) -> Any?
    func value(withName name: String, inPropertyWithKey key: String) -> Any?
    func value(withUniqueID uniqueID: Any, inPropertyWithKey key: String) -> Any?
    func insertValue(_ value: Any, at index: Int, inPropertyWithKey key: String)
    func removeValue(at index: Int, fromPropertyWithKey key: String)
    func replaceValue(at index: Int, inPropertyWithKey key: String, withValue value: Any)
    func insertValue(_ value: Any, inPropertyWithKey key: String)
    func coerceValue(_ value: Any?, forKey key: String) -> Any?
    var classCode: FourCharCode { get }
    var className: String { get }
    func scriptingValue(for objectSpecifier: NSScriptObjectSpecifier) -> Any?
    var scriptingProperties: [String : Any]?
    func copyScriptingValue(_ value: Any, forKey key: String, withProperties properties: [String : Any]) -> Any?
    func newScriptingObject(of objectClass: AnyClass, forValueForKey key: String, withContentsValue contentsValue: Any?, properties properties: [String : Any]) -> Any?
    @NSCopying var classDescription: NSClassDescription { get }
    var attributeKeys: [String] { get }
    var toOneRelationshipKeys: [String] { get }
    var toManyRelationshipKeys: [String] { get }
    func inverse(forRelationshipKey relationshipKey: String) -> String?
    var classForPortCoder: AnyClass { get }
    func replacementObject(for coder: NSPortCoder) -> Any?
    var classForArchiver: AnyClass? { get }
    func replacementObject(for archiver: NSArchiver) -> Any?
    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 setKeys(_ keys: [Any], triggerChangeNotificationsForDependentKey dependentKey: 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 func useStoredAccessor() -> Bool
    func storedValue(forKey key: String) -> Any?
    func takeStoredValue(_ value: Any?, forKey key: String)
    func takeValue(_ value: Any?, forKey key: String)
    func takeValue(_ value: Any?, forKeyPath keyPath: String)
    func handleQuery(withUnboundKey key: String) -> Any?
    func handleTakeValue(_ value: Any?, forUnboundKey key: String)
    func unableToSetNil(forKey key: String)
    func values(forKeys keys: [Any]) -> [AnyHashable : Any]
    func takeValues(from properties: [AnyHashable : Any])
    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 pose(as aClass: AnyClass)
    class func version() -> Int
    class func setVersion(_ aVersion: Int)
    var classForCoder: AnyClass { get }
    func replacementObject(for aCoder: NSCoder) -> Any?
    func awakeAfter(using aDecoder: NSCoder) -> Any?
}
extension SKDownload : CVarArg {
}
extension SKDownload : Equatable, Hashable {
    var hashValue: Int { get }
}
CVarArg, Equatable, Hashable

Introduction
FromOS X 10.10
ToOS X 10.8

Introduction
FromOS X 10.10
ToOS X 10.8

DeclarationIntroduction
From
@NSCopying var contentURL: NSURL? { get }
OS X 10.10
To
var contentURL: URL? { get }
OS X 10.8

DeclarationIntroduction
From
class func contentURLForProductID(_ productID: String) -> NSURL?
OS X 10.10
To
class func contentURL(forProductID productID: String) -> URL?
OS X 10.8

DeclarationIntroduction
From
var contentVersion: String? { get }
OS X 10.10
To
var contentVersion: String { get }
OS X 10.8

DeclarationIntroduction
From
class func deleteContentForProductID(_ productID: String)
OS X 10.10
To
class func deleteContent(forProductID productID: String)
OS X 10.8

DeclarationIntroduction
From
@NSCopying var error: NSError? { get }
OS X 10.10
To
var error: Error? { get }
OS X 10.8

Introduction
FromOS X 10.10
ToOS X 10.8

Introduction
FromOS X 10.10
ToOS X 10.8

DeclarationIntroduction
From
var timeRemaining: NSTimeInterval { get }
OS X 10.10
To
var timeRemaining: TimeInterval { get }
OS X 10.8

Declaration
From
var transaction: SKPaymentTransaction? { get }
To
var transaction: SKPaymentTransaction { get }

Declaration
From
class SKMutablePayment : SKPayment {
    var productIdentifier: String
    var quantity: Int
    @NSCopying var requestData: NSData?
    var applicationUsername: String?
}
To
class SKMutablePayment : SKPayment {
    var productIdentifier: String
    var quantity: Int
    var requestData: Data?
    var applicationUsername: String?
}

Introduction
FromOS X 10.10
ToOS X 10.9

Introduction
FromOS X 10.10
ToOS X 10.7

Introduction
FromOS X 10.10
ToOS X 10.7

DeclarationIntroduction
From
@NSCopying var requestData: NSData?
OS X 10.10
To
var requestData: Data?
OS X 10.7

Modified SKPayment
DeclarationProtocols
From
class SKPayment : NSObject, NSCopying, NSMutableCopying {
    class func paymentWithProduct(_ product: SKProduct) -> AnyObject
    var productIdentifier: String { get }
    @NSCopying var requestData: NSData? { get }
    var quantity: Int { get }
    var applicationUsername: String? { get }
}
NSCopying, NSMutableCopying
To
class SKPayment : NSObject, NSCopying, NSMutableCopying {
    convenience init(product product: SKProduct)
    class func withProduct(_ product: SKProduct) -> Self
    var productIdentifier: String { get }
    var requestData: Data? { get }
    var quantity: Int { get }
    var applicationUsername: String? { get }
    func scriptingIsEqual(to object: Any) -> Bool
    func scriptingIsLessThanOrEqual(to object: Any) -> Bool
    func scriptingIsLessThan(_ object: Any) -> Bool
    func scriptingIsGreaterThanOrEqual(to object: Any) -> Bool
    func scriptingIsGreaterThan(_ object: Any) -> Bool
    func scriptingBegins(with object: Any) -> Bool
    func scriptingEnds(with object: Any) -> Bool
    func scriptingContains(_ object: Any) -> Bool
    func isEqual(to object: Any?) -> Bool
    func isLessThanOrEqual(to object: Any?) -> Bool
    func isLessThan(_ object: Any?) -> Bool
    func isGreaterThanOrEqual(to object: Any?) -> Bool
    func isGreaterThan(_ object: Any?) -> Bool
    func isNotEqual(to object: Any?) -> Bool
    func doesContain(_ object: Any) -> Bool
    func isLike(_ object: String) -> Bool
    func isCaseInsensitiveLike(_ object: String) -> Bool
    var objectSpecifier: NSScriptObjectSpecifier? { get }
    func indicesOfObjects(byEvaluatingObjectSpecifier specifier: NSScriptObjectSpecifier) -> [NSNumber]?
    func value(at index: Int, inPropertyWithKey key: String) -> Any?
    func value(withName name: String, inPropertyWithKey key: String) -> Any?
    func value(withUniqueID uniqueID: Any, inPropertyWithKey key: String) -> Any?
    func insertValue(_ value: Any, at index: Int, inPropertyWithKey key: String)
    func removeValue(at index: Int, fromPropertyWithKey key: String)
    func replaceValue(at index: Int, inPropertyWithKey key: String, withValue value: Any)
    func insertValue(_ value: Any, inPropertyWithKey key: String)
    func coerceValue(_ value: Any?, forKey key: String) -> Any?
    var classCode: FourCharCode { get }
    var className: String { get }
    func scriptingValue(for objectSpecifier: NSScriptObjectSpecifier) -> Any?
    var scriptingProperties: [String : Any]?
    func copyScriptingValue(_ value: Any, forKey key: String, withProperties properties: [String : Any]) -> Any?
    func newScriptingObject(of objectClass: AnyClass, forValueForKey key: String, withContentsValue contentsValue: Any?, properties properties: [String : Any]) -> Any?
    @NSCopying var classDescription: NSClassDescription { get }
    var attributeKeys: [String] { get }
    var toOneRelationshipKeys: [String] { get }
    var toManyRelationshipKeys: [String] { get }
    func inverse(forRelationshipKey relationshipKey: String) -> String?
    var classForPortCoder: AnyClass { get }
    func replacementObject(for coder: NSPortCoder) -> Any?
    var classForArchiver: AnyClass? { get }
    func replacementObject(for archiver: NSArchiver) -> Any?
    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 setKeys(_ keys: [Any], triggerChangeNotificationsForDependentKey dependentKey: 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 func useStoredAccessor() -> Bool
    func storedValue(forKey key: String) -> Any?
    func takeStoredValue(_ value: Any?, forKey key: String)
    func takeValue(_ value: Any?, forKey key: String)
    func takeValue(_ value: Any?, forKeyPath keyPath: String)
    func handleQuery(withUnboundKey key: String) -> Any?
    func handleTakeValue(_ value: Any?, forUnboundKey key: String)
    func unableToSetNil(forKey key: String)
    func values(forKeys keys: [Any]) -> [AnyHashable : Any]
    func takeValues(from properties: [AnyHashable : Any])
    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 pose(as aClass: AnyClass)
    class func version() -> Int
    class func setVersion(_ aVersion: Int)
    var classForCoder: AnyClass { get }
    func replacementObject(for aCoder: NSCoder) -> Any?
    func awakeAfter(using aDecoder: NSCoder) -> Any?
}
extension SKPayment : CVarArg {
}
extension SKPayment : Equatable, Hashable {
    var hashValue: Int { get }
}
CVarArg, Equatable, Hashable, NSCopying, NSMutableCopying

Introduction
FromOS X 10.10
ToOS X 10.9

NameDeclarationIntroduction
FrompaymentWithProduct(_:)
class func paymentWithProduct(_ product: SKProduct) -> AnyObject
OS X 10.10
Toinit(product:)
convenience init(product product: SKProduct)
OS X 10.7

Introduction
FromOS X 10.10
ToOS X 10.7

Introduction
FromOS X 10.10
ToOS X 10.7

DeclarationIntroduction
From
@NSCopying var requestData: NSData? { get }
OS X 10.10
To
var requestData: Data? { get }
OS X 10.7

DeclarationProtocols
From
class SKPaymentQueue : NSObject {
    class func defaultQueue() -> SKPaymentQueue
    class func canMakePayments() -> Bool
    func addPayment(_ payment: SKPayment)
    func restoreCompletedTransactions()
    func restoreCompletedTransactionsWithApplicationUsername(_ username: String?)
    func finishTransaction(_ transaction: SKPaymentTransaction)
    func addTransactionObserver(_ observer: SKPaymentTransactionObserver)
    func removeTransactionObserver(_ observer: SKPaymentTransactionObserver)
    var transactions: [SKPaymentTransaction]? { get }
    func startDownloads(_ downloads: [SKDownload])
    func pauseDownloads(_ downloads: [SKDownload])
    func resumeDownloads(_ downloads: [SKDownload])
    func cancelDownloads(_ downloads: [SKDownload])
}
--
To
class SKPaymentQueue : NSObject {
    class func `default`() -> Self
    class func canMakePayments() -> Bool
    func add(_ payment: SKPayment)
    func restoreCompletedTransactions()
    func restoreCompletedTransactions(withApplicationUsername username: String?)
    func finishTransaction(_ transaction: SKPaymentTransaction)
    func add(_ observer: SKPaymentTransactionObserver)
    func remove(_ observer: SKPaymentTransactionObserver)
    var transactions: [SKPaymentTransaction] { get }
    func start(_ downloads: [SKDownload])
    func pause(_ downloads: [SKDownload])
    func resume(_ downloads: [SKDownload])
    func cancel(_ downloads: [SKDownload])
    func scriptingIsEqual(to object: Any) -> Bool
    func scriptingIsLessThanOrEqual(to object: Any) -> Bool
    func scriptingIsLessThan(_ object: Any) -> Bool
    func scriptingIsGreaterThanOrEqual(to object: Any) -> Bool
    func scriptingIsGreaterThan(_ object: Any) -> Bool
    func scriptingBegins(with object: Any) -> Bool
    func scriptingEnds(with object: Any) -> Bool
    func scriptingContains(_ object: Any) -> Bool
    func isEqual(to object: Any?) -> Bool
    func isLessThanOrEqual(to object: Any?) -> Bool
    func isLessThan(_ object: Any?) -> Bool
    func isGreaterThanOrEqual(to object: Any?) -> Bool
    func isGreaterThan(_ object: Any?) -> Bool
    func isNotEqual(to object: Any?) -> Bool
    func doesContain(_ object: Any) -> Bool
    func isLike(_ object: String) -> Bool
    func isCaseInsensitiveLike(_ object: String) -> Bool
    var objectSpecifier: NSScriptObjectSpecifier? { get }
    func indicesOfObjects(byEvaluatingObjectSpecifier specifier: NSScriptObjectSpecifier) -> [NSNumber]?
    func value(at index: Int, inPropertyWithKey key: String) -> Any?
    func value(withName name: String, inPropertyWithKey key: String) -> Any?
    func value(withUniqueID uniqueID: Any, inPropertyWithKey key: String) -> Any?
    func insertValue(_ value: Any, at index: Int, inPropertyWithKey key: String)
    func removeValue(at index: Int, fromPropertyWithKey key: String)
    func replaceValue(at index: Int, inPropertyWithKey key: String, withValue value: Any)
    func insertValue(_ value: Any, inPropertyWithKey key: String)
    func coerceValue(_ value: Any?, forKey key: String) -> Any?
    var classCode: FourCharCode { get }
    var className: String { get }
    func scriptingValue(for objectSpecifier: NSScriptObjectSpecifier) -> Any?
    var scriptingProperties: [String : Any]?
    func copyScriptingValue(_ value: Any, forKey key: String, withProperties properties: [String : Any]) -> Any?
    func newScriptingObject(of objectClass: AnyClass, forValueForKey key: String, withContentsValue contentsValue: Any?, properties properties: [String : Any]) -> Any?
    @NSCopying var classDescription: NSClassDescription { get }
    var attributeKeys: [String] { get }
    var toOneRelationshipKeys: [String] { get }
    var toManyRelationshipKeys: [String] { get }
    func inverse(forRelationshipKey relationshipKey: String) -> String?
    var classForPortCoder: AnyClass { get }
    func replacementObject(for coder: NSPortCoder) -> Any?
    var classForArchiver: AnyClass? { get }
    func replacementObject(for archiver: NSArchiver) -> Any?
    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 setKeys(_ keys: [Any], triggerChangeNotificationsForDependentKey dependentKey: 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 func useStoredAccessor() -> Bool
    func storedValue(forKey key: String) -> Any?
    func takeStoredValue(_ value: Any?, forKey key: String)
    func takeValue(_ value: Any?, forKey key: String)
    func takeValue(_ value: Any?, forKeyPath keyPath: String)
    func handleQuery(withUnboundKey key: String) -> Any?
    func handleTakeValue(_ value: Any?, forUnboundKey key: String)
    func unableToSetNil(forKey key: String)
    func values(forKeys keys: [Any]) -> [AnyHashable : Any]
    func takeValues(from properties: [AnyHashable : Any])
    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 pose(as aClass: AnyClass)
    class func version() -> Int
    class func setVersion(_ aVersion: Int)
    var classForCoder: AnyClass { get }
    func replacementObject(for aCoder: NSCoder) -> Any?
    func awakeAfter(using aDecoder: NSCoder) -> Any?
}
extension SKPaymentQueue : CVarArg {
}
extension SKPaymentQueue : Equatable, Hashable {
    var hashValue: Int { get }
}
CVarArg, Equatable, Hashable

DeclarationIntroduction
From
func addPayment(_ payment: SKPayment)
OS X 10.10
To
func add(_ payment: SKPayment)
OS X 10.7

DeclarationIntroduction
From
func addTransactionObserver(_ observer: SKPaymentTransactionObserver)
OS X 10.10
To
func add(_ observer: SKPaymentTransactionObserver)
OS X 10.7

DeclarationIntroduction
From
func cancelDownloads(_ downloads: [SKDownload])
OS X 10.10
To
func cancel(_ downloads: [SKDownload])
OS X 10.8

Introduction
FromOS X 10.10
ToOS X 10.7

DeclarationIntroduction
From
class func defaultQueue() -> SKPaymentQueue
OS X 10.10
To
class func `default`() -> Self
OS X 10.7

Introduction
FromOS X 10.10
ToOS X 10.7

DeclarationIntroduction
From
func pauseDownloads(_ downloads: [SKDownload])
OS X 10.10
To
func pause(_ downloads: [SKDownload])
OS X 10.8

DeclarationIntroduction
From
func removeTransactionObserver(_ observer: SKPaymentTransactionObserver)
OS X 10.10
To
func remove(_ observer: SKPaymentTransactionObserver)
OS X 10.7

Introduction
FromOS X 10.10
ToOS X 10.7

DeclarationIntroduction
From
func restoreCompletedTransactionsWithApplicationUsername(_ username: String?)
OS X 10.10
To
func restoreCompletedTransactions(withApplicationUsername username: String?)
OS X 10.9

DeclarationIntroduction
From
func resumeDownloads(_ downloads: [SKDownload])
OS X 10.10
To
func resume(_ downloads: [SKDownload])
OS X 10.8

DeclarationIntroduction
From
func startDownloads(_ downloads: [SKDownload])
OS X 10.10
To
func start(_ downloads: [SKDownload])
OS X 10.8

DeclarationIntroduction
From
var transactions: [SKPaymentTransaction]? { get }
OS X 10.10
To
var transactions: [SKPaymentTransaction] { get }
OS X 10.7

DeclarationProtocols
From
class SKPaymentTransaction : NSObject {
    var error: NSError? { get }
    var originalTransaction: SKPaymentTransaction? { get }
    var payment: SKPayment { get }
    var transactionDate: NSDate? { get }
    var transactionIdentifier: String? { get }
    var downloads: [AnyObject]? { get }
    var transactionState: SKPaymentTransactionState { get }
}
--
To
class SKPaymentTransaction : NSObject {
    var error: Error? { get }
    var original: SKPaymentTransaction? { get }
    var payment: SKPayment { get }
    var transactionDate: Date? { get }
    var transactionIdentifier: String? { get }
    var downloads: [SKDownload] { get }
    var transactionState: SKPaymentTransactionState { get }
    func scriptingIsEqual(to object: Any) -> Bool
    func scriptingIsLessThanOrEqual(to object: Any) -> Bool
    func scriptingIsLessThan(_ object: Any) -> Bool
    func scriptingIsGreaterThanOrEqual(to object: Any) -> Bool
    func scriptingIsGreaterThan(_ object: Any) -> Bool
    func scriptingBegins(with object: Any) -> Bool
    func scriptingEnds(with object: Any) -> Bool
    func scriptingContains(_ object: Any) -> Bool
    func isEqual(to object: Any?) -> Bool
    func isLessThanOrEqual(to object: Any?) -> Bool
    func isLessThan(_ object: Any?) -> Bool
    func isGreaterThanOrEqual(to object: Any?) -> Bool
    func isGreaterThan(_ object: Any?) -> Bool
    func isNotEqual(to object: Any?) -> Bool
    func doesContain(_ object: Any) -> Bool
    func isLike(_ object: String) -> Bool
    func isCaseInsensitiveLike(_ object: String) -> Bool
    var objectSpecifier: NSScriptObjectSpecifier? { get }
    func indicesOfObjects(byEvaluatingObjectSpecifier specifier: NSScriptObjectSpecifier) -> [NSNumber]?
    func value(at index: Int, inPropertyWithKey key: String) -> Any?
    func value(withName name: String, inPropertyWithKey key: String) -> Any?
    func value(withUniqueID uniqueID: Any, inPropertyWithKey key: String) -> Any?
    func insertValue(_ value: Any, at index: Int, inPropertyWithKey key: String)
    func removeValue(at index: Int, fromPropertyWithKey key: String)
    func replaceValue(at index: Int, inPropertyWithKey key: String, withValue value: Any)
    func insertValue(_ value: Any, inPropertyWithKey key: String)
    func coerceValue(_ value: Any?, forKey key: String) -> Any?
    var classCode: FourCharCode { get }
    var className: String { get }
    func scriptingValue(for objectSpecifier: NSScriptObjectSpecifier) -> Any?
    var scriptingProperties: [String : Any]?
    func copyScriptingValue(_ value: Any, forKey key: String, withProperties properties: [String : Any]) -> Any?
    func newScriptingObject(of objectClass: AnyClass, forValueForKey key: String, withContentsValue contentsValue: Any?, properties properties: [String : Any]) -> Any?
    @NSCopying var classDescription: NSClassDescription { get }
    var attributeKeys: [String] { get }
    var toOneRelationshipKeys: [String] { get }
    var toManyRelationshipKeys: [String] { get }
    func inverse(forRelationshipKey relationshipKey: String) -> String?
    var classForPortCoder: AnyClass { get }
    func replacementObject(for coder: NSPortCoder) -> Any?
    var classForArchiver: AnyClass? { get }
    func replacementObject(for archiver: NSArchiver) -> Any?
    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 setKeys(_ keys: [Any], triggerChangeNotificationsForDependentKey dependentKey: 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 func useStoredAccessor() -> Bool
    func storedValue(forKey key: String) -> Any?
    func takeStoredValue(_ value: Any?, forKey key: String)
    func takeValue(_ value: Any?, forKey key: String)
    func takeValue(_ value: Any?, forKeyPath keyPath: String)
    func handleQuery(withUnboundKey key: String) -> Any?
    func handleTakeValue(_ value: Any?, forUnboundKey key: String)
    func unableToSetNil(forKey key: String)
    func values(forKeys keys: [Any]) -> [AnyHashable : Any]
    func takeValues(from properties: [AnyHashable : Any])
    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 pose(as aClass: AnyClass)
    class func version() -> Int
    class func setVersion(_ aVersion: Int)
    var classForCoder: AnyClass { get }
    func replacementObject(for aCoder: NSCoder) -> Any?
    func awakeAfter(using aDecoder: NSCoder) -> Any?
}
extension SKPaymentTransaction : CVarArg {
}
extension SKPaymentTransaction : Equatable, Hashable {
    var hashValue: Int { get }
}
CVarArg, Equatable, Hashable

DeclarationIntroduction
From
var downloads: [AnyObject]? { get }
OS X 10.10
To
var downloads: [SKDownload] { get }
OS X 10.8

DeclarationIntroduction
From
var error: NSError? { get }
OS X 10.10
To
var error: Error? { get }
OS X 10.7

DeclarationIntroduction
From
var originalTransaction: SKPaymentTransaction? { get }
OS X 10.10
To
var original: SKPaymentTransaction? { get }
OS X 10.7

Introduction
FromOS X 10.10
ToOS X 10.7

DeclarationIntroduction
From
var transactionDate: NSDate? { get }
OS X 10.10
To
var transactionDate: Date? { get }
OS X 10.7

Introduction
FromOS X 10.10
ToOS X 10.7

Introduction
FromOS X 10.10
ToOS X 10.7

Declaration
From
protocol SKPaymentTransactionObserver : NSObjectProtocol {
    func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction])
    optional func paymentQueue(_ queue: SKPaymentQueue, removedTransactions transactions: [SKPaymentTransaction])
    optional func paymentQueue(_ queue: SKPaymentQueue, restoreCompletedTransactionsFailedWithError error: NSError)
    optional func paymentQueueRestoreCompletedTransactionsFinished(_ queue: SKPaymentQueue)
    optional func paymentQueue(_ queue: SKPaymentQueue, updatedDownloads downloads: [SKDownload])
}
To
protocol SKPaymentTransactionObserver : NSObjectProtocol {
    func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction])
    optional func paymentQueue(_ queue: SKPaymentQueue, removedTransactions transactions: [SKPaymentTransaction])
    optional func paymentQueue(_ queue: SKPaymentQueue, restoreCompletedTransactionsFailedWithError error: Error)
    optional func paymentQueueRestoreCompletedTransactionsFinished(_ queue: SKPaymentQueue)
    optional func paymentQueue(_ queue: SKPaymentQueue, updatedDownloads downloads: [SKDownload])
}

Declaration
From
optional func paymentQueue(_ queue: SKPaymentQueue, restoreCompletedTransactionsFailedWithError error: NSError)
To
optional func paymentQueue(_ queue: SKPaymentQueue, restoreCompletedTransactionsFailedWithError error: Error)

Modified SKProduct
DeclarationProtocols
From
class SKProduct : NSObject {
    var localizedDescription: String? { get }
    var localizedTitle: String? { get }
    var price: NSDecimalNumber? { get }
    var priceLocale: NSLocale? { get }
    var productIdentifier: String? { get }
    var downloadable: Bool { get }
    var contentVersion: String? { get }
    var contentLengths: [NSNumber]? { get }
}
--
To
class SKProduct : NSObject {
    var localizedDescription: String { get }
    var localizedTitle: String { get }
    var price: NSDecimalNumber { get }
    var priceLocale: Locale { get }
    var productIdentifier: String { get }
    var downloadable: Bool { get }
    var contentVersion: String { get }
    var contentLengths: [NSNumber] { get }
    func scriptingIsEqual(to object: Any) -> Bool
    func scriptingIsLessThanOrEqual(to object: Any) -> Bool
    func scriptingIsLessThan(_ object: Any) -> Bool
    func scriptingIsGreaterThanOrEqual(to object: Any) -> Bool
    func scriptingIsGreaterThan(_ object: Any) -> Bool
    func scriptingBegins(with object: Any) -> Bool
    func scriptingEnds(with object: Any) -> Bool
    func scriptingContains(_ object: Any) -> Bool
    func isEqual(to object: Any?) -> Bool
    func isLessThanOrEqual(to object: Any?) -> Bool
    func isLessThan(_ object: Any?) -> Bool
    func isGreaterThanOrEqual(to object: Any?) -> Bool
    func isGreaterThan(_ object: Any?) -> Bool
    func isNotEqual(to object: Any?) -> Bool
    func doesContain(_ object: Any) -> Bool
    func isLike(_ object: String) -> Bool
    func isCaseInsensitiveLike(_ object: String) -> Bool
    var objectSpecifier: NSScriptObjectSpecifier? { get }
    func indicesOfObjects(byEvaluatingObjectSpecifier specifier: NSScriptObjectSpecifier) -> [NSNumber]?
    func value(at index: Int, inPropertyWithKey key: String) -> Any?
    func value(withName name: String, inPropertyWithKey key: String) -> Any?
    func value(withUniqueID uniqueID: Any, inPropertyWithKey key: String) -> Any?
    func insertValue(_ value: Any, at index: Int, inPropertyWithKey key: String)
    func removeValue(at index: Int, fromPropertyWithKey key: String)
    func replaceValue(at index: Int, inPropertyWithKey key: String, withValue value: Any)
    func insertValue(_ value: Any, inPropertyWithKey key: String)
    func coerceValue(_ value: Any?, forKey key: String) -> Any?
    var classCode: FourCharCode { get }
    var className: String { get }
    func scriptingValue(for objectSpecifier: NSScriptObjectSpecifier) -> Any?
    var scriptingProperties: [String : Any]?
    func copyScriptingValue(_ value: Any, forKey key: String, withProperties properties: [String : Any]) -> Any?
    func newScriptingObject(of objectClass: AnyClass, forValueForKey key: String, withContentsValue contentsValue: Any?, properties properties: [String : Any]) -> Any?
    @NSCopying var classDescription: NSClassDescription { get }
    var attributeKeys: [String] { get }
    var toOneRelationshipKeys: [String] { get }
    var toManyRelationshipKeys: [String] { get }
    func inverse(forRelationshipKey relationshipKey: String) -> String?
    var classForPortCoder: AnyClass { get }
    func replacementObject(for coder: NSPortCoder) -> Any?
    var classForArchiver: AnyClass? { get }
    func replacementObject(for archiver: NSArchiver) -> Any?
    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 setKeys(_ keys: [Any], triggerChangeNotificationsForDependentKey dependentKey: 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 func useStoredAccessor() -> Bool
    func storedValue(forKey key: String) -> Any?
    func takeStoredValue(_ value: Any?, forKey key: String)
    func takeValue(_ value: Any?, forKey key: String)
    func takeValue(_ value: Any?, forKeyPath keyPath: String)
    func handleQuery(withUnboundKey key: String) -> Any?
    func handleTakeValue(_ value: Any?, forUnboundKey key: String)
    func unableToSetNil(forKey key: String)
    func values(forKeys keys: [Any]) -> [AnyHashable : Any]
    func takeValues(from properties: [AnyHashable : Any])
    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 pose(as aClass: AnyClass)
    class func version() -> Int
    class func setVersion(_ aVersion: Int)
    var classForCoder: AnyClass { get }
    func replacementObject(for aCoder: NSCoder) -> Any?
    func awakeAfter(using aDecoder: NSCoder) -> Any?
}
extension SKProduct : CVarArg {
}
extension SKProduct : Equatable, Hashable {
    var hashValue: Int { get }
}
CVarArg, Equatable, Hashable

DeclarationIntroduction
From
var contentLengths: [NSNumber]? { get }
OS X 10.10
To
var contentLengths: [NSNumber] { get }
OS X 10.8

DeclarationIntroduction
From
var contentVersion: String? { get }
OS X 10.10
To
var contentVersion: String { get }
OS X 10.8

Introduction
FromOS X 10.10
ToOS X 10.8

DeclarationIntroduction
From
var localizedDescription: String? { get }
OS X 10.10
To
var localizedDescription: String { get }
OS X 10.7

DeclarationIntroduction
From
var localizedTitle: String? { get }
OS X 10.10
To
var localizedTitle: String { get }
OS X 10.7

DeclarationIntroduction
From
var price: NSDecimalNumber? { get }
OS X 10.10
To
var price: NSDecimalNumber { get }
OS X 10.7

DeclarationIntroduction
From
var priceLocale: NSLocale? { get }
OS X 10.10
To
var priceLocale: Locale { get }
OS X 10.7

DeclarationIntroduction
From
var productIdentifier: String? { get }
OS X 10.10
To
var productIdentifier: String { get }
OS X 10.7

Declaration
From
class SKProductsRequest : SKRequest {
    init(productIdentifiers productIdentifiers: Set<NSObject>)
    unowned(unsafe) var delegate: SKProductsRequestDelegate?
}
To
class SKProductsRequest : SKRequest {
    init(productIdentifiers productIdentifiers: Set<String>)
    weak var delegate: SKProductsRequestDelegate?
}

DeclarationIntroduction
From
unowned(unsafe) var delegate: SKProductsRequestDelegate?
OS X 10.10
To
weak var delegate: SKProductsRequestDelegate?
OS X 10.7

DeclarationIntroduction
From
init(productIdentifiers productIdentifiers: Set<NSObject>)
OS X 10.10
To
init(productIdentifiers productIdentifiers: Set<String>)
OS X 10.7

Declaration
From
protocol SKProductsRequestDelegate : SKRequestDelegate {
    func productsRequest(_ request: SKProductsRequest, didReceiveResponse response: SKProductsResponse)
}
To
protocol SKProductsRequestDelegate : SKRequestDelegate {
    func productsRequest(_ request: SKProductsRequest, didReceive response: SKProductsResponse)
}

Declaration
From
func productsRequest(_ request: SKProductsRequest, didReceiveResponse response: SKProductsResponse)
To
func productsRequest(_ request: SKProductsRequest, didReceive response: SKProductsResponse)

DeclarationProtocols
From
class SKProductsResponse : NSObject {
    var products: [SKProduct]? { get }
    var invalidProductIdentifiers: [String]? { get }
}
--
To
class SKProductsResponse : NSObject {
    var products: [SKProduct] { get }
    var invalidProductIdentifiers: [String] { get }
    func scriptingIsEqual(to object: Any) -> Bool
    func scriptingIsLessThanOrEqual(to object: Any) -> Bool
    func scriptingIsLessThan(_ object: Any) -> Bool
    func scriptingIsGreaterThanOrEqual(to object: Any) -> Bool
    func scriptingIsGreaterThan(_ object: Any) -> Bool
    func scriptingBegins(with object: Any) -> Bool
    func scriptingEnds(with object: Any) -> Bool
    func scriptingContains(_ object: Any) -> Bool
    func isEqual(to object: Any?) -> Bool
    func isLessThanOrEqual(to object: Any?) -> Bool
    func isLessThan(_ object: Any?) -> Bool
    func isGreaterThanOrEqual(to object: Any?) -> Bool
    func isGreaterThan(_ object: Any?) -> Bool
    func isNotEqual(to object: Any?) -> Bool
    func doesContain(_ object: Any) -> Bool
    func isLike(_ object: String) -> Bool
    func isCaseInsensitiveLike(_ object: String) -> Bool
    var objectSpecifier: NSScriptObjectSpecifier? { get }
    func indicesOfObjects(byEvaluatingObjectSpecifier specifier: NSScriptObjectSpecifier) -> [NSNumber]?
    func value(at index: Int, inPropertyWithKey key: String) -> Any?
    func value(withName name: String, inPropertyWithKey key: String) -> Any?
    func value(withUniqueID uniqueID: Any, inPropertyWithKey key: String) -> Any?
    func insertValue(_ value: Any, at index: Int, inPropertyWithKey key: String)
    func removeValue(at index: Int, fromPropertyWithKey key: String)
    func replaceValue(at index: Int, inPropertyWithKey key: String, withValue value: Any)
    func insertValue(_ value: Any, inPropertyWithKey key: String)
    func coerceValue(_ value: Any?, forKey key: String) -> Any?
    var classCode: FourCharCode { get }
    var className: String { get }
    func scriptingValue(for objectSpecifier: NSScriptObjectSpecifier) -> Any?
    var scriptingProperties: [String : Any]?
    func copyScriptingValue(_ value: Any, forKey key: String, withProperties properties: [String : Any]) -> Any?
    func newScriptingObject(of objectClass: AnyClass, forValueForKey key: String, withContentsValue contentsValue: Any?, properties properties: [String : Any]) -> Any?
    @NSCopying var classDescription: NSClassDescription { get }
    var attributeKeys: [String] { get }
    var toOneRelationshipKeys: [String] { get }
    var toManyRelationshipKeys: [String] { get }
    func inverse(forRelationshipKey relationshipKey: String) -> String?
    var classForPortCoder: AnyClass { get }
    func replacementObject(for coder: NSPortCoder) -> Any?
    var classForArchiver: AnyClass? { get }
    func replacementObject(for archiver: NSArchiver) -> Any?
    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 setKeys(_ keys: [Any], triggerChangeNotificationsForDependentKey dependentKey: 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 func useStoredAccessor() -> Bool
    func storedValue(forKey key: String) -> Any?
    func takeStoredValue(_ value: Any?, forKey key: String)
    func takeValue(_ value: Any?, forKey key: String)
    func takeValue(_ value: Any?, forKeyPath keyPath: String)
    func handleQuery(withUnboundKey key: String) -> Any?
    func handleTakeValue(_ value: Any?, forUnboundKey key: String)
    func unableToSetNil(forKey key: String)
    func values(forKeys keys: [Any]) -> [AnyHashable : Any]
    func takeValues(from properties: [AnyHashable : Any])
    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 pose(as aClass: AnyClass)
    class func version() -> Int
    class func setVersion(_ aVersion: Int)
    var classForCoder: AnyClass { get }
    func replacementObject(for aCoder: NSCoder) -> Any?
    func awakeAfter(using aDecoder: NSCoder) -> Any?
}
extension SKProductsResponse : CVarArg {
}
extension SKProductsResponse : Equatable, Hashable {
    var hashValue: Int { get }
}
CVarArg, Equatable, Hashable

DeclarationIntroduction
From
var invalidProductIdentifiers: [String]? { get }
OS X 10.10
To
var invalidProductIdentifiers: [String] { get }
OS X 10.7

DeclarationIntroduction
From
var products: [SKProduct]? { get }
OS X 10.10
To
var products: [SKProduct] { get }
OS X 10.7

Declaration
From
class SKReceiptRefreshRequest : SKRequest {
    init?(receiptProperties properties: [String : AnyObject])
    var receiptProperties: [String : AnyObject]? { get }
}
To
class SKReceiptRefreshRequest : SKRequest {
    init(receiptProperties properties: [String : Any]?)
    var receiptProperties: [String : Any]? { get }
}

DeclarationIntroduction
From
init?(receiptProperties properties: [String : AnyObject])
OS X 10.10
To
init(receiptProperties properties: [String : Any]?)
OS X 10.9

DeclarationIntroduction
From
var receiptProperties: [String : AnyObject]? { get }
OS X 10.10
To
var receiptProperties: [String : Any]? { get }
OS X 10.9

Modified SKRequest
DeclarationProtocols
From
class SKRequest : NSObject {
    unowned(unsafe) var delegate: SKRequestDelegate?
    func cancel()
    func start()
}
--
To
class SKRequest : NSObject {
    weak var delegate: SKRequestDelegate?
    func cancel()
    func start()
    func scriptingIsEqual(to object: Any) -> Bool
    func scriptingIsLessThanOrEqual(to object: Any) -> Bool
    func scriptingIsLessThan(_ object: Any) -> Bool
    func scriptingIsGreaterThanOrEqual(to object: Any) -> Bool
    func scriptingIsGreaterThan(_ object: Any) -> Bool
    func scriptingBegins(with object: Any) -> Bool
    func scriptingEnds(with object: Any) -> Bool
    func scriptingContains(_ object: Any) -> Bool
    func isEqual(to object: Any?) -> Bool
    func isLessThanOrEqual(to object: Any?) -> Bool
    func isLessThan(_ object: Any?) -> Bool
    func isGreaterThanOrEqual(to object: Any?) -> Bool
    func isGreaterThan(_ object: Any?) -> Bool
    func isNotEqual(to object: Any?) -> Bool
    func doesContain(_ object: Any) -> Bool
    func isLike(_ object: String) -> Bool
    func isCaseInsensitiveLike(_ object: String) -> Bool
    var objectSpecifier: NSScriptObjectSpecifier? { get }
    func indicesOfObjects(byEvaluatingObjectSpecifier specifier: NSScriptObjectSpecifier) -> [NSNumber]?
    func value(at index: Int, inPropertyWithKey key: String) -> Any?
    func value(withName name: String, inPropertyWithKey key: String) -> Any?
    func value(withUniqueID uniqueID: Any, inPropertyWithKey key: String) -> Any?
    func insertValue(_ value: Any, at index: Int, inPropertyWithKey key: String)
    func removeValue(at index: Int, fromPropertyWithKey key: String)
    func replaceValue(at index: Int, inPropertyWithKey key: String, withValue value: Any)
    func insertValue(_ value: Any, inPropertyWithKey key: String)
    func coerceValue(_ value: Any?, forKey key: String) -> Any?
    var classCode: FourCharCode { get }
    var className: String { get }
    func scriptingValue(for objectSpecifier: NSScriptObjectSpecifier) -> Any?
    var scriptingProperties: [String : Any]?
    func copyScriptingValue(_ value: Any, forKey key: String, withProperties properties: [String : Any]) -> Any?
    func newScriptingObject(of objectClass: AnyClass, forValueForKey key: String, withContentsValue contentsValue: Any?, properties properties: [String : Any]) -> Any?
    @NSCopying var classDescription: NSClassDescription { get }
    var attributeKeys: [String] { get }
    var toOneRelationshipKeys: [String] { get }
    var toManyRelationshipKeys: [String] { get }
    func inverse(forRelationshipKey relationshipKey: String) -> String?
    var classForPortCoder: AnyClass { get }
    func replacementObject(for coder: NSPortCoder) -> Any?
    var classForArchiver: AnyClass? { get }
    func replacementObject(for archiver: NSArchiver) -> Any?
    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 setKeys(_ keys: [Any], triggerChangeNotificationsForDependentKey dependentKey: 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 func useStoredAccessor() -> Bool
    func storedValue(forKey key: String) -> Any?
    func takeStoredValue(_ value: Any?, forKey key: String)
    func takeValue(_ value: Any?, forKey key: String)
    func takeValue(_ value: Any?, forKeyPath keyPath: String)
    func handleQuery(withUnboundKey key: String) -> Any?
    func handleTakeValue(_ value: Any?, forUnboundKey key: String)
    func unableToSetNil(forKey key: String)
    func values(forKeys keys: [Any]) -> [AnyHashable : Any]
    func takeValues(from properties: [AnyHashable : Any])
    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 pose(as aClass: AnyClass)
    class func version() -> Int
    class func setVersion(_ aVersion: Int)
    var classForCoder: AnyClass { get }
    func replacementObject(for aCoder: NSCoder) -> Any?
    func awakeAfter(using aDecoder: NSCoder) -> Any?
}
extension SKRequest : CVarArg {
}
extension SKRequest : Equatable, Hashable {
    var hashValue: Int { get }
}
CVarArg, Equatable, Hashable

Introduction
FromOS X 10.10
ToOS X 10.7

DeclarationIntroduction
From
unowned(unsafe) var delegate: SKRequestDelegate?
OS X 10.10
To
weak var delegate: SKRequestDelegate?
OS X 10.7

Introduction
FromOS X 10.10
ToOS X 10.7

Declaration
From
protocol SKRequestDelegate : NSObjectProtocol {
    optional func requestDidFinish(_ request: SKRequest)
    optional func request(_ request: SKRequest, didFailWithError error: NSError?)
}
To
protocol SKRequestDelegate : NSObjectProtocol {
    optional func requestDidFinish(_ request: SKRequest)
    optional func request(_ request: SKRequest, didFailWithError error: Error)
}

Declaration
From
optional func request(_ request: SKRequest, didFailWithError error: NSError?)
To
optional func request(_ request: SKRequest, didFailWithError error: Error)

Introduction
FromOS X 10.7
ToOS X 10.9

Introduction
FromOS X 10.7
ToOS X 10.9

Introduction
FromOS X 10.7
ToOS X 10.9

Feedback