Documentation Archive Developer
Search

Photos Changes for Swift

Photos

Removed PHAssetBurstSelectionType.init(_: UInt)
Removed PHAssetMediaSubtype.init(_: UInt)
Added PHAssetSourceType.init(rawValue: UInt)
Declaration
From
class PHAdjustmentData : NSObject {
    init!(formatIdentifier formatIdentifier: String!, formatVersion formatVersion: String!, data data: NSData!)
    var formatIdentifier: String! { get }
    var formatVersion: String! { get }
    var data: NSData! { get }
}
To
class PHAdjustmentData : NSObject {
    init(formatIdentifier formatIdentifier: String, formatVersion formatVersion: String, data data: NSData)
    var formatIdentifier: String { get }
    var formatVersion: String { get }
    var data: NSData { get }
}

Declaration
From
var data: NSData! { get }
To
var data: NSData { get }

Declaration
From
var formatIdentifier: String! { get }
To
var formatIdentifier: String { get }

Declaration
From
var formatVersion: String! { get }
To
var formatVersion: String { get }

Declaration
From
init!(formatIdentifier formatIdentifier: String!, formatVersion formatVersion: String!, data data: NSData!)
To
init(formatIdentifier formatIdentifier: String, formatVersion formatVersion: String, data data: NSData)

Modified PHAsset
Declaration
From
class PHAsset : PHObject {
    var mediaType: PHAssetMediaType { get }
    var mediaSubtypes: PHAssetMediaSubtype { get }
    var pixelWidth: Int { get }
    var pixelHeight: Int { get }
    var creationDate: NSDate! { get }
    var modificationDate: NSDate! { get }
    var location: CLLocation! { get }
    var duration: NSTimeInterval { get }
    var hidden: Bool { get }
    var favorite: Bool { get }
    var burstIdentifier: String! { get }
    var burstSelectionTypes: PHAssetBurstSelectionType { get }
    var representsBurst: Bool { get }
    func canPerformEditOperation(_ editOperation: PHAssetEditOperation) -> Bool
    class func fetchAssetsInAssetCollection(_ assetCollection: PHAssetCollection!, options options: PHFetchOptions!) -> PHFetchResult!
    class func fetchAssetsWithMediaType(_ mediaType: PHAssetMediaType, options options: PHFetchOptions!) -> PHFetchResult!
    class func fetchAssetsWithLocalIdentifiers(_ identifiers: [AnyObject]!, options options: PHFetchOptions!) -> PHFetchResult!
    class func fetchKeyAssetsInAssetCollection(_ assetCollection: PHAssetCollection!, options options: PHFetchOptions!) -> PHFetchResult!
    class func fetchAssetsWithBurstIdentifier(_ burstIdentifier: String!, options options: PHFetchOptions!) -> PHFetchResult!
    class func fetchAssetsWithOptions(_ options: PHFetchOptions!) -> PHFetchResult!
    class func fetchAssetsWithALAssetURLs(_ assetURLs: [AnyObject]!, options options: PHFetchOptions!) -> PHFetchResult!
}
extension PHAsset {
    func requestContentEditingInputWithOptions(_ options: PHContentEditingInputRequestOptions!, completionHandler completionHandler: ((PHContentEditingInput!, [NSObject : AnyObject]!) -> Void)!) -> PHContentEditingInputRequestID
    func cancelContentEditingInputRequest(_ requestID: PHContentEditingInputRequestID)
}
To
class PHAsset : PHObject {
    var mediaType: PHAssetMediaType { get }
    var mediaSubtypes: PHAssetMediaSubtype { get }
    var pixelWidth: Int { get }
    var pixelHeight: Int { get }
    var creationDate: NSDate? { get }
    var modificationDate: NSDate? { get }
    var location: CLLocation? { get }
    var duration: NSTimeInterval { get }
    var hidden: Bool { get }
    var favorite: Bool { get }
    var burstIdentifier: String? { get }
    var burstSelectionTypes: PHAssetBurstSelectionType { get }
    var representsBurst: Bool { get }
    var sourceType: PHAssetSourceType { get }
    func canPerformEditOperation(_ editOperation: PHAssetEditOperation) -> Bool
    class func fetchAssetsInAssetCollection(_ assetCollection: PHAssetCollection, options options: PHFetchOptions?) -> PHFetchResult
    class func fetchAssetsWithLocalIdentifiers(_ identifiers: [String], options options: PHFetchOptions?) -> PHFetchResult
    class func fetchKeyAssetsInAssetCollection(_ assetCollection: PHAssetCollection, options options: PHFetchOptions?) -> PHFetchResult?
    class func fetchAssetsWithBurstIdentifier(_ burstIdentifier: String, options options: PHFetchOptions?) -> PHFetchResult
    class func fetchAssetsWithOptions(_ options: PHFetchOptions?) -> PHFetchResult
    class func fetchAssetsWithMediaType(_ mediaType: PHAssetMediaType, options options: PHFetchOptions?) -> PHFetchResult
    class func fetchAssetsWithALAssetURLs(_ assetURLs: [NSURL], options options: PHFetchOptions?) -> PHFetchResult
}
extension PHAsset {
    func requestContentEditingInputWithOptions(_ options: PHContentEditingInputRequestOptions?, completionHandler completionHandler: (PHContentEditingInput?, [NSObject : AnyObject]) -> Void) -> PHContentEditingInputRequestID
    func cancelContentEditingInputRequest(_ requestID: PHContentEditingInputRequestID)
}

Declaration
From
var burstIdentifier: String! { get }
To
var burstIdentifier: String? { get }

Declaration
From
var creationDate: NSDate! { get }
To
var creationDate: NSDate? { get }

Declaration
From
class func fetchAssetsInAssetCollection(_ assetCollection: PHAssetCollection!, options options: PHFetchOptions!) -> PHFetchResult!
To
class func fetchAssetsInAssetCollection(_ assetCollection: PHAssetCollection, options options: PHFetchOptions?) -> PHFetchResult

Declaration
From
class func fetchAssetsWithALAssetURLs(_ assetURLs: [AnyObject]!, options options: PHFetchOptions!) -> PHFetchResult!
To
class func fetchAssetsWithALAssetURLs(_ assetURLs: [NSURL], options options: PHFetchOptions?) -> PHFetchResult

Declaration
From
class func fetchAssetsWithBurstIdentifier(_ burstIdentifier: String!, options options: PHFetchOptions!) -> PHFetchResult!
To
class func fetchAssetsWithBurstIdentifier(_ burstIdentifier: String, options options: PHFetchOptions?) -> PHFetchResult

Declaration
From
class func fetchAssetsWithLocalIdentifiers(_ identifiers: [AnyObject]!, options options: PHFetchOptions!) -> PHFetchResult!
To
class func fetchAssetsWithLocalIdentifiers(_ identifiers: [String], options options: PHFetchOptions?) -> PHFetchResult

Declaration
From
class func fetchAssetsWithMediaType(_ mediaType: PHAssetMediaType, options options: PHFetchOptions!) -> PHFetchResult!
To
class func fetchAssetsWithMediaType(_ mediaType: PHAssetMediaType, options options: PHFetchOptions?) -> PHFetchResult

Declaration
From
class func fetchAssetsWithOptions(_ options: PHFetchOptions!) -> PHFetchResult!
To
class func fetchAssetsWithOptions(_ options: PHFetchOptions?) -> PHFetchResult

Declaration
From
class func fetchKeyAssetsInAssetCollection(_ assetCollection: PHAssetCollection!, options options: PHFetchOptions!) -> PHFetchResult!
To
class func fetchKeyAssetsInAssetCollection(_ assetCollection: PHAssetCollection, options options: PHFetchOptions?) -> PHFetchResult?

Declaration
From
var location: CLLocation! { get }
To
var location: CLLocation? { get }

Declaration
From
var modificationDate: NSDate! { get }
To
var modificationDate: NSDate? { get }

Declaration
From
func requestContentEditingInputWithOptions(_ options: PHContentEditingInputRequestOptions!, completionHandler completionHandler: ((PHContentEditingInput!, [NSObject : AnyObject]!) -> Void)!) -> PHContentEditingInputRequestID
To
func requestContentEditingInputWithOptions(_ options: PHContentEditingInputRequestOptions?, completionHandler completionHandler: (PHContentEditingInput?, [NSObject : AnyObject]) -> Void) -> PHContentEditingInputRequestID

DeclarationProtocols
From
struct PHAssetBurstSelectionType : RawOptionSetType {
    init(_ rawValue: UInt)
    init(rawValue rawValue: UInt)
    static var None: PHAssetBurstSelectionType { get }
    static var AutoPick: PHAssetBurstSelectionType { get }
    static var UserPick: PHAssetBurstSelectionType { get }
}
RawOptionSetType
To
struct PHAssetBurstSelectionType : OptionSetType {
    init(rawValue rawValue: UInt)
    static var None: PHAssetBurstSelectionType { get }
    static var AutoPick: PHAssetBurstSelectionType { get }
    static var UserPick: PHAssetBurstSelectionType { get }
}
OptionSetType

Declaration
From
class PHAssetChangeRequest : NSObject {
    class func creationRequestForAssetFromImage(_ image: UIImage!) -> Self!
    class func creationRequestForAssetFromImageAtFileURL(_ fileURL: NSURL!) -> Self!
    class func creationRequestForAssetFromVideoAtFileURL(_ fileURL: NSURL!) -> Self!
    var placeholderForCreatedAsset: PHObjectPlaceholder! { get }
    class func deleteAssets(_ assets: NSFastEnumeration!)
    convenience init!(forAsset asset: PHAsset!)
    class func changeRequestForAsset(_ asset: PHAsset!) -> Self!
    var creationDate: NSDate!
    var location: CLLocation!
    var favorite: Bool
    var hidden: Bool
    var contentEditingOutput: PHContentEditingOutput!
    func revertAssetContentToOriginal()
}
To
class PHAssetChangeRequest : NSObject {
    class func creationRequestForAssetFromImage(_ image: UIImage) -> Self
    class func creationRequestForAssetFromImageAtFileURL(_ fileURL: NSURL) -> Self?
    class func creationRequestForAssetFromVideoAtFileURL(_ fileURL: NSURL) -> Self?
    var placeholderForCreatedAsset: PHObjectPlaceholder? { get }
    class func deleteAssets(_ assets: NSFastEnumeration)
    convenience init(forAsset asset: PHAsset)
    class func changeRequestForAsset(_ asset: PHAsset) -> Self
    var creationDate: NSDate?
    var location: CLLocation?
    var favorite: Bool
    var hidden: Bool
    var contentEditingOutput: PHContentEditingOutput?
    func revertAssetContentToOriginal()
}

Declaration
From
var contentEditingOutput: PHContentEditingOutput!
To
var contentEditingOutput: PHContentEditingOutput?

Declaration
From
var creationDate: NSDate!
To
var creationDate: NSDate?

Declaration
From
class func creationRequestForAssetFromImage(_ image: UIImage!) -> Self!
To
class func creationRequestForAssetFromImage(_ image: UIImage) -> Self

Declaration
From
class func creationRequestForAssetFromImageAtFileURL(_ fileURL: NSURL!) -> Self!
To
class func creationRequestForAssetFromImageAtFileURL(_ fileURL: NSURL) -> Self?

Declaration
From
class func creationRequestForAssetFromVideoAtFileURL(_ fileURL: NSURL!) -> Self!
To
class func creationRequestForAssetFromVideoAtFileURL(_ fileURL: NSURL) -> Self?

Declaration
From
class func deleteAssets(_ assets: NSFastEnumeration!)
To
class func deleteAssets(_ assets: NSFastEnumeration)

Declaration
From
convenience init!(forAsset asset: PHAsset!)
To
convenience init(forAsset asset: PHAsset)

Declaration
From
var location: CLLocation!
To
var location: CLLocation?

Declaration
From
var placeholderForCreatedAsset: PHObjectPlaceholder! { get }
To
var placeholderForCreatedAsset: PHObjectPlaceholder? { get }

Declaration
From
class PHAssetCollection : PHCollection {
    var assetCollectionType: PHAssetCollectionType { get }
    var assetCollectionSubtype: PHAssetCollectionSubtype { get }
    var estimatedAssetCount: Int { get }
    var startDate: NSDate! { get }
    var endDate: NSDate! { get }
    var approximateLocation: CLLocation! { get }
    var localizedLocationNames: [AnyObject]! { get }
    class func fetchAssetCollectionsWithLocalIdentifiers(_ identifiers: [AnyObject]!, options options: PHFetchOptions!) -> PHFetchResult!
    class func fetchAssetCollectionsWithType(_ type: PHAssetCollectionType, subtype subtype: PHAssetCollectionSubtype, options options: PHFetchOptions!) -> PHFetchResult!
    class func fetchAssetCollectionsContainingAsset(_ asset: PHAsset!, withType type: PHAssetCollectionType, options options: PHFetchOptions!) -> PHFetchResult!
    class func fetchAssetCollectionsWithALAssetGroupURLs(_ assetGroupURLs: [AnyObject]!, options options: PHFetchOptions!) -> PHFetchResult!
    class func fetchMomentsInMomentList(_ momentList: PHCollectionList!, options options: PHFetchOptions!) -> PHFetchResult!
    class func fetchMomentsWithOptions(_ options: PHFetchOptions!) -> PHFetchResult!
    class func transientAssetCollectionWithAssets(_ assets: [AnyObject]!, title title: String!) -> PHAssetCollection!
    class func transientAssetCollectionWithAssetFetchResult(_ fetchResult: PHFetchResult!, title title: String!) -> PHAssetCollection!
}
To
class PHAssetCollection : PHCollection {
    var assetCollectionType: PHAssetCollectionType { get }
    var assetCollectionSubtype: PHAssetCollectionSubtype { get }
    var estimatedAssetCount: Int { get }
    var startDate: NSDate? { get }
    var endDate: NSDate? { get }
    var approximateLocation: CLLocation? { get }
    var localizedLocationNames: [String] { get }
    class func fetchAssetCollectionsWithLocalIdentifiers(_ identifiers: [String], options options: PHFetchOptions?) -> PHFetchResult
    class func fetchAssetCollectionsWithType(_ type: PHAssetCollectionType, subtype subtype: PHAssetCollectionSubtype, options options: PHFetchOptions?) -> PHFetchResult
    class func fetchAssetCollectionsContainingAsset(_ asset: PHAsset, withType type: PHAssetCollectionType, options options: PHFetchOptions?) -> PHFetchResult
    class func fetchAssetCollectionsWithALAssetGroupURLs(_ assetGroupURLs: [NSURL], options options: PHFetchOptions?) -> PHFetchResult
    class func fetchMomentsInMomentList(_ momentList: PHCollectionList, options options: PHFetchOptions?) -> PHFetchResult
    class func fetchMomentsWithOptions(_ options: PHFetchOptions?) -> PHFetchResult
    class func transientAssetCollectionWithAssets(_ assets: [PHAsset], title title: String?) -> PHAssetCollection
    class func transientAssetCollectionWithAssetFetchResult(_ fetchResult: PHFetchResult, title title: String?) -> PHAssetCollection
}

Declaration
From
var approximateLocation: CLLocation! { get }
To
var approximateLocation: CLLocation? { get }

Declaration
From
var endDate: NSDate! { get }
To
var endDate: NSDate? { get }

Declaration
From
class func fetchAssetCollectionsContainingAsset(_ asset: PHAsset!, withType type: PHAssetCollectionType, options options: PHFetchOptions!) -> PHFetchResult!
To
class func fetchAssetCollectionsContainingAsset(_ asset: PHAsset, withType type: PHAssetCollectionType, options options: PHFetchOptions?) -> PHFetchResult

Declaration
From
class func fetchAssetCollectionsWithALAssetGroupURLs(_ assetGroupURLs: [AnyObject]!, options options: PHFetchOptions!) -> PHFetchResult!
To
class func fetchAssetCollectionsWithALAssetGroupURLs(_ assetGroupURLs: [NSURL], options options: PHFetchOptions?) -> PHFetchResult

Declaration
From
class func fetchAssetCollectionsWithLocalIdentifiers(_ identifiers: [AnyObject]!, options options: PHFetchOptions!) -> PHFetchResult!
To
class func fetchAssetCollectionsWithLocalIdentifiers(_ identifiers: [String], options options: PHFetchOptions?) -> PHFetchResult

Declaration
From
class func fetchAssetCollectionsWithType(_ type: PHAssetCollectionType, subtype subtype: PHAssetCollectionSubtype, options options: PHFetchOptions!) -> PHFetchResult!
To
class func fetchAssetCollectionsWithType(_ type: PHAssetCollectionType, subtype subtype: PHAssetCollectionSubtype, options options: PHFetchOptions?) -> PHFetchResult

Declaration
From
class func fetchMomentsInMomentList(_ momentList: PHCollectionList!, options options: PHFetchOptions!) -> PHFetchResult!
To
class func fetchMomentsInMomentList(_ momentList: PHCollectionList, options options: PHFetchOptions?) -> PHFetchResult

Declaration
From
class func fetchMomentsWithOptions(_ options: PHFetchOptions!) -> PHFetchResult!
To
class func fetchMomentsWithOptions(_ options: PHFetchOptions?) -> PHFetchResult

Declaration
From
var localizedLocationNames: [AnyObject]! { get }
To
var localizedLocationNames: [String] { get }

Declaration
From
var startDate: NSDate! { get }
To
var startDate: NSDate? { get }

Declaration
From
class func transientAssetCollectionWithAssetFetchResult(_ fetchResult: PHFetchResult!, title title: String!) -> PHAssetCollection!
To
class func transientAssetCollectionWithAssetFetchResult(_ fetchResult: PHFetchResult, title title: String?) -> PHAssetCollection

Declaration
From
class func transientAssetCollectionWithAssets(_ assets: [AnyObject]!, title title: String!) -> PHAssetCollection!
To
class func transientAssetCollectionWithAssets(_ assets: [PHAsset], title title: String?) -> PHAssetCollection

Declaration
From
class PHAssetCollectionChangeRequest : NSObject {
    class func creationRequestForAssetCollectionWithTitle(_ title: String!) -> Self!
    var placeholderForCreatedAssetCollection: PHObjectPlaceholder! { get }
    class func deleteAssetCollections(_ assetCollections: NSFastEnumeration!)
    convenience init!(forAssetCollection assetCollection: PHAssetCollection!)
    class func changeRequestForAssetCollection(_ assetCollection: PHAssetCollection!) -> Self!
    convenience init!(forAssetCollection assetCollection: PHAssetCollection!, assets assets: PHFetchResult!)
    class func changeRequestForAssetCollection(_ assetCollection: PHAssetCollection!, assets assets: PHFetchResult!) -> Self!
    var title: String!
    func addAssets(_ assets: NSFastEnumeration!)
    func insertAssets(_ assets: NSFastEnumeration!, atIndexes indexes: NSIndexSet!)
    func removeAssets(_ assets: NSFastEnumeration!)
    func removeAssetsAtIndexes(_ indexes: NSIndexSet!)
    func replaceAssetsAtIndexes(_ indexes: NSIndexSet!, withAssets assets: NSFastEnumeration!)
    func moveAssetsAtIndexes(_ fromIndexes: NSIndexSet!, toIndex toIndex: Int)
}
To
class PHAssetCollectionChangeRequest : NSObject {
    class func creationRequestForAssetCollectionWithTitle(_ title: String) -> Self
    var placeholderForCreatedAssetCollection: PHObjectPlaceholder { get }
    class func deleteAssetCollections(_ assetCollections: NSFastEnumeration)
    convenience init?(forAssetCollection assetCollection: PHAssetCollection)
    class func changeRequestForAssetCollection(_ assetCollection: PHAssetCollection) -> Self?
    convenience init?(forAssetCollection assetCollection: PHAssetCollection, assets assets: PHFetchResult)
    class func changeRequestForAssetCollection(_ assetCollection: PHAssetCollection, assets assets: PHFetchResult) -> Self?
    var title: String
    func addAssets(_ assets: NSFastEnumeration)
    func insertAssets(_ assets: NSFastEnumeration, atIndexes indexes: NSIndexSet)
    func removeAssets(_ assets: NSFastEnumeration)
    func removeAssetsAtIndexes(_ indexes: NSIndexSet)
    func replaceAssetsAtIndexes(_ indexes: NSIndexSet, withAssets assets: NSFastEnumeration)
    func moveAssetsAtIndexes(_ fromIndexes: NSIndexSet, toIndex toIndex: Int)
}

Declaration
From
func addAssets(_ assets: NSFastEnumeration!)
To
func addAssets(_ assets: NSFastEnumeration)

Declaration
From
class func creationRequestForAssetCollectionWithTitle(_ title: String!) -> Self!
To
class func creationRequestForAssetCollectionWithTitle(_ title: String) -> Self

Declaration
From
class func deleteAssetCollections(_ assetCollections: NSFastEnumeration!)
To
class func deleteAssetCollections(_ assetCollections: NSFastEnumeration)

Declaration
From
convenience init!(forAssetCollection assetCollection: PHAssetCollection!)
To
convenience init?(forAssetCollection assetCollection: PHAssetCollection)

Declaration
From
convenience init!(forAssetCollection assetCollection: PHAssetCollection!, assets assets: PHFetchResult!)
To
convenience init?(forAssetCollection assetCollection: PHAssetCollection, assets assets: PHFetchResult)

Declaration
From
func insertAssets(_ assets: NSFastEnumeration!, atIndexes indexes: NSIndexSet!)
To
func insertAssets(_ assets: NSFastEnumeration, atIndexes indexes: NSIndexSet)

Declaration
From
func moveAssetsAtIndexes(_ fromIndexes: NSIndexSet!, toIndex toIndex: Int)
To
func moveAssetsAtIndexes(_ fromIndexes: NSIndexSet, toIndex toIndex: Int)

Declaration
From
var placeholderForCreatedAssetCollection: PHObjectPlaceholder! { get }
To
var placeholderForCreatedAssetCollection: PHObjectPlaceholder { get }

Declaration
From
func removeAssets(_ assets: NSFastEnumeration!)
To
func removeAssets(_ assets: NSFastEnumeration)

Declaration
From
func removeAssetsAtIndexes(_ indexes: NSIndexSet!)
To
func removeAssetsAtIndexes(_ indexes: NSIndexSet)

Declaration
From
func replaceAssetsAtIndexes(_ indexes: NSIndexSet!, withAssets assets: NSFastEnumeration!)
To
func replaceAssetsAtIndexes(_ indexes: NSIndexSet, withAssets assets: NSFastEnumeration)

Declaration
From
var title: String!
To
var title: String

DeclarationRaw Value Type
From
enum PHAssetCollectionSubtype : Int {
    case AlbumRegular
    case AlbumSyncedEvent
    case AlbumSyncedFaces
    case AlbumSyncedAlbum
    case AlbumImported
    case AlbumMyPhotoStream
    case AlbumCloudShared
    case SmartAlbumGeneric
    case SmartAlbumPanoramas
    case SmartAlbumVideos
    case SmartAlbumFavorites
    case SmartAlbumTimelapses
    case SmartAlbumAllHidden
    case SmartAlbumRecentlyAdded
    case SmartAlbumBursts
    case SmartAlbumSlomoVideos
    case SmartAlbumUserLibrary
    case Any
}
--
To
enum PHAssetCollectionSubtype : Int {
    case AlbumRegular
    case AlbumSyncedEvent
    case AlbumSyncedFaces
    case AlbumSyncedAlbum
    case AlbumImported
    case AlbumMyPhotoStream
    case AlbumCloudShared
    case SmartAlbumGeneric
    case SmartAlbumPanoramas
    case SmartAlbumVideos
    case SmartAlbumFavorites
    case SmartAlbumTimelapses
    case SmartAlbumAllHidden
    case SmartAlbumRecentlyAdded
    case SmartAlbumBursts
    case SmartAlbumSlomoVideos
    case SmartAlbumUserLibrary
    case SmartAlbumSelfPortraits
    case SmartAlbumScreenshots
    case Any
}
Int

Raw Value Type
From--
ToInt

Raw Value Type
From--
ToInt

DeclarationProtocols
From
struct PHAssetMediaSubtype : RawOptionSetType {
    init(_ rawValue: UInt)
    init(rawValue rawValue: UInt)
    static var None: PHAssetMediaSubtype { get }
    static var PhotoPanorama: PHAssetMediaSubtype { get }
    static var PhotoHDR: PHAssetMediaSubtype { get }
    static var VideoStreamed: PHAssetMediaSubtype { get }
    static var VideoHighFrameRate: PHAssetMediaSubtype { get }
    static var VideoTimelapse: PHAssetMediaSubtype { get }
}
RawOptionSetType
To
struct PHAssetMediaSubtype : OptionSetType {
    init(rawValue rawValue: UInt)
    static var None: PHAssetMediaSubtype { get }
    static var PhotoPanorama: PHAssetMediaSubtype { get }
    static var PhotoHDR: PHAssetMediaSubtype { get }
    static var PhotoScreenshot: PHAssetMediaSubtype { get }
    static var VideoStreamed: PHAssetMediaSubtype { get }
    static var VideoHighFrameRate: PHAssetMediaSubtype { get }
    static var VideoTimelapse: PHAssetMediaSubtype { get }
}
OptionSetType

Raw Value Type
From--
ToInt

Raw Value Type
From--
ToInt

Declaration
From
class PHCachingImageManager : PHImageManager {
    var allowsCachingHighQualityImages: Bool
    func startCachingImagesForAssets(_ assets: [AnyObject]!, targetSize targetSize: CGSize, contentMode contentMode: PHImageContentMode, options options: PHImageRequestOptions!)
    func stopCachingImagesForAssets(_ assets: [AnyObject]!, targetSize targetSize: CGSize, contentMode contentMode: PHImageContentMode, options options: PHImageRequestOptions!)
    func stopCachingImagesForAllAssets()
}
To
class PHCachingImageManager : PHImageManager {
    var allowsCachingHighQualityImages: Bool
    func startCachingImagesForAssets(_ assets: [PHAsset], targetSize targetSize: CGSize, contentMode contentMode: PHImageContentMode, options options: PHImageRequestOptions?)
    func stopCachingImagesForAssets(_ assets: [PHAsset], targetSize targetSize: CGSize, contentMode contentMode: PHImageContentMode, options options: PHImageRequestOptions?)
    func stopCachingImagesForAllAssets()
}

Declaration
From
func startCachingImagesForAssets(_ assets: [AnyObject]!, targetSize targetSize: CGSize, contentMode contentMode: PHImageContentMode, options options: PHImageRequestOptions!)
To
func startCachingImagesForAssets(_ assets: [PHAsset], targetSize targetSize: CGSize, contentMode contentMode: PHImageContentMode, options options: PHImageRequestOptions?)

Declaration
From
func stopCachingImagesForAssets(_ assets: [AnyObject]!, targetSize targetSize: CGSize, contentMode contentMode: PHImageContentMode, options options: PHImageRequestOptions!)
To
func stopCachingImagesForAssets(_ assets: [PHAsset], targetSize targetSize: CGSize, contentMode contentMode: PHImageContentMode, options options: PHImageRequestOptions?)

Modified PHChange
Declaration
From
class PHChange : NSObject {
    func changeDetailsForObject(_ object: PHObject!) -> PHObjectChangeDetails!
    func changeDetailsForFetchResult(_ object: PHFetchResult!) -> PHFetchResultChangeDetails!
}
To
class PHChange : NSObject {
    func changeDetailsForObject(_ object: PHObject) -> PHObjectChangeDetails?
    func changeDetailsForFetchResult(_ object: PHFetchResult) -> PHFetchResultChangeDetails?
}

Declaration
From
func changeDetailsForFetchResult(_ object: PHFetchResult!) -> PHFetchResultChangeDetails!
To
func changeDetailsForFetchResult(_ object: PHFetchResult) -> PHFetchResultChangeDetails?

Declaration
From
func changeDetailsForObject(_ object: PHObject!) -> PHObjectChangeDetails!
To
func changeDetailsForObject(_ object: PHObject) -> PHObjectChangeDetails?

Modified PHCollection
Declaration
From
class PHCollection : PHObject {
    var canContainAssets: Bool { get }
    var canContainCollections: Bool { get }
    var localizedTitle: String! { get }
    func canPerformEditOperation(_ anOperation: PHCollectionEditOperation) -> Bool
    class func fetchCollectionsInCollectionList(_ collectionList: PHCollectionList!, options options: PHFetchOptions!) -> PHFetchResult!
    class func fetchTopLevelUserCollectionsWithOptions(_ options: PHFetchOptions!) -> PHFetchResult!
}
To
class PHCollection : PHObject {
    var canContainAssets: Bool { get }
    var canContainCollections: Bool { get }
    var localizedTitle: String? { get }
    func canPerformEditOperation(_ anOperation: PHCollectionEditOperation) -> Bool
    class func fetchCollectionsInCollectionList(_ collectionList: PHCollectionList, options options: PHFetchOptions?) -> PHFetchResult
    class func fetchTopLevelUserCollectionsWithOptions(_ options: PHFetchOptions?) -> PHFetchResult
}

Declaration
From
class func fetchCollectionsInCollectionList(_ collectionList: PHCollectionList!, options options: PHFetchOptions!) -> PHFetchResult!
To
class func fetchCollectionsInCollectionList(_ collectionList: PHCollectionList, options options: PHFetchOptions?) -> PHFetchResult

Declaration
From
class func fetchTopLevelUserCollectionsWithOptions(_ options: PHFetchOptions!) -> PHFetchResult!
To
class func fetchTopLevelUserCollectionsWithOptions(_ options: PHFetchOptions?) -> PHFetchResult

Declaration
From
var localizedTitle: String! { get }
To
var localizedTitle: String? { get }

Raw Value Type
From--
ToInt

Declaration
From
class PHCollectionList : PHCollection {
    var collectionListType: PHCollectionListType { get }
    var collectionListSubtype: PHCollectionListSubtype { get }
    var startDate: NSDate! { get }
    var endDate: NSDate! { get }
    var localizedLocationNames: [AnyObject]! { get }
    class func fetchCollectionListsContainingCollection(_ collection: PHCollection!, options options: PHFetchOptions!) -> PHFetchResult!
    class func fetchCollectionListsWithLocalIdentifiers(_ identifiers: [AnyObject]!, options options: PHFetchOptions!) -> PHFetchResult!
    class func fetchCollectionListsWithType(_ collectionListType: PHCollectionListType, subtype subtype: PHCollectionListSubtype, options options: PHFetchOptions!) -> PHFetchResult!
    class func fetchMomentListsWithSubtype(_ momentListSubtype: PHCollectionListSubtype, containingMoment moment: PHAssetCollection!, options options: PHFetchOptions!) -> PHFetchResult!
    class func fetchMomentListsWithSubtype(_ momentListSubtype: PHCollectionListSubtype, options options: PHFetchOptions!) -> PHFetchResult!
    class func transientCollectionListWithCollections(_ collections: [AnyObject]!, title title: String!) -> PHCollectionList!
    class func transientCollectionListWithCollectionsFetchResult(_ fetchResult: PHFetchResult!, title title: String!) -> PHCollectionList!
}
To
class PHCollectionList : PHCollection {
    var collectionListType: PHCollectionListType { get }
    var collectionListSubtype: PHCollectionListSubtype { get }
    var startDate: NSDate? { get }
    var endDate: NSDate? { get }
    var localizedLocationNames: [String] { get }
    class func fetchCollectionListsContainingCollection(_ collection: PHCollection, options options: PHFetchOptions?) -> PHFetchResult
    class func fetchCollectionListsWithLocalIdentifiers(_ identifiers: [String], options options: PHFetchOptions?) -> PHFetchResult
    class func fetchCollectionListsWithType(_ collectionListType: PHCollectionListType, subtype subtype: PHCollectionListSubtype, options options: PHFetchOptions?) -> PHFetchResult
    class func fetchMomentListsWithSubtype(_ momentListSubtype: PHCollectionListSubtype, containingMoment moment: PHAssetCollection, options options: PHFetchOptions?) -> PHFetchResult
    class func fetchMomentListsWithSubtype(_ momentListSubtype: PHCollectionListSubtype, options options: PHFetchOptions?) -> PHFetchResult
    class func transientCollectionListWithCollections(_ collections: [PHCollection], title title: String?) -> PHCollectionList
    class func transientCollectionListWithCollectionsFetchResult(_ fetchResult: PHFetchResult, title title: String?) -> PHCollectionList
}

Declaration
From
var endDate: NSDate! { get }
To
var endDate: NSDate? { get }

Declaration
From
class func fetchCollectionListsContainingCollection(_ collection: PHCollection!, options options: PHFetchOptions!) -> PHFetchResult!
To
class func fetchCollectionListsContainingCollection(_ collection: PHCollection, options options: PHFetchOptions?) -> PHFetchResult

Declaration
From
class func fetchCollectionListsWithLocalIdentifiers(_ identifiers: [AnyObject]!, options options: PHFetchOptions!) -> PHFetchResult!
To
class func fetchCollectionListsWithLocalIdentifiers(_ identifiers: [String], options options: PHFetchOptions?) -> PHFetchResult

Declaration
From
class func fetchCollectionListsWithType(_ collectionListType: PHCollectionListType, subtype subtype: PHCollectionListSubtype, options options: PHFetchOptions!) -> PHFetchResult!
To
class func fetchCollectionListsWithType(_ collectionListType: PHCollectionListType, subtype subtype: PHCollectionListSubtype, options options: PHFetchOptions?) -> PHFetchResult

Declaration
From
class func fetchMomentListsWithSubtype(_ momentListSubtype: PHCollectionListSubtype, containingMoment moment: PHAssetCollection!, options options: PHFetchOptions!) -> PHFetchResult!
To
class func fetchMomentListsWithSubtype(_ momentListSubtype: PHCollectionListSubtype, containingMoment moment: PHAssetCollection, options options: PHFetchOptions?) -> PHFetchResult

Declaration
From
class func fetchMomentListsWithSubtype(_ momentListSubtype: PHCollectionListSubtype, options options: PHFetchOptions!) -> PHFetchResult!
To
class func fetchMomentListsWithSubtype(_ momentListSubtype: PHCollectionListSubtype, options options: PHFetchOptions?) -> PHFetchResult

Declaration
From
var localizedLocationNames: [AnyObject]! { get }
To
var localizedLocationNames: [String] { get }

Declaration
From
var startDate: NSDate! { get }
To
var startDate: NSDate? { get }

Declaration
From
class func transientCollectionListWithCollections(_ collections: [AnyObject]!, title title: String!) -> PHCollectionList!
To
class func transientCollectionListWithCollections(_ collections: [PHCollection], title title: String?) -> PHCollectionList

Declaration
From
class func transientCollectionListWithCollectionsFetchResult(_ fetchResult: PHFetchResult!, title title: String!) -> PHCollectionList!
To
class func transientCollectionListWithCollectionsFetchResult(_ fetchResult: PHFetchResult, title title: String?) -> PHCollectionList

Declaration
From
class PHCollectionListChangeRequest : NSObject {
    class func creationRequestForCollectionListWithTitle(_ title: String!) -> Self!
    var placeholderForCreatedCollectionList: PHObjectPlaceholder! { get }
    class func deleteCollectionLists(_ collectionLists: NSFastEnumeration!)
    convenience init!(forCollectionList collectionList: PHCollectionList!)
    class func changeRequestForCollectionList(_ collectionList: PHCollectionList!) -> Self!
    convenience init!(forCollectionList collectionList: PHCollectionList!, childCollections childCollections: PHFetchResult!)
    class func changeRequestForCollectionList(_ collectionList: PHCollectionList!, childCollections childCollections: PHFetchResult!) -> Self!
    var title: String!
    func addChildCollections(_ collections: NSFastEnumeration!)
    func insertChildCollections(_ collections: NSFastEnumeration!, atIndexes indexes: NSIndexSet!)
    func removeChildCollections(_ collections: NSFastEnumeration!)
    func removeChildCollectionsAtIndexes(_ indexes: NSIndexSet!)
    func replaceChildCollectionsAtIndexes(_ indexes: NSIndexSet!, withChildCollections collections: NSFastEnumeration!)
    func moveChildCollectionsAtIndexes(_ indexes: NSIndexSet!, toIndex toIndex: Int)
}
To
class PHCollectionListChangeRequest : NSObject {
    class func creationRequestForCollectionListWithTitle(_ title: String) -> Self
    var placeholderForCreatedCollectionList: PHObjectPlaceholder { get }
    class func deleteCollectionLists(_ collectionLists: NSFastEnumeration)
    convenience init?(forCollectionList collectionList: PHCollectionList)
    class func changeRequestForCollectionList(_ collectionList: PHCollectionList) -> Self?
    convenience init?(forCollectionList collectionList: PHCollectionList, childCollections childCollections: PHFetchResult)
    class func changeRequestForCollectionList(_ collectionList: PHCollectionList, childCollections childCollections: PHFetchResult) -> Self?
    var title: String
    func addChildCollections(_ collections: NSFastEnumeration)
    func insertChildCollections(_ collections: NSFastEnumeration, atIndexes indexes: NSIndexSet)
    func removeChildCollections(_ collections: NSFastEnumeration)
    func removeChildCollectionsAtIndexes(_ indexes: NSIndexSet)
    func replaceChildCollectionsAtIndexes(_ indexes: NSIndexSet, withChildCollections collections: NSFastEnumeration)
    func moveChildCollectionsAtIndexes(_ indexes: NSIndexSet, toIndex toIndex: Int)
}

Declaration
From
func addChildCollections(_ collections: NSFastEnumeration!)
To
func addChildCollections(_ collections: NSFastEnumeration)

Declaration
From
class func creationRequestForCollectionListWithTitle(_ title: String!) -> Self!
To
class func creationRequestForCollectionListWithTitle(_ title: String) -> Self

Declaration
From
class func deleteCollectionLists(_ collectionLists: NSFastEnumeration!)
To
class func deleteCollectionLists(_ collectionLists: NSFastEnumeration)

Declaration
From
convenience init!(forCollectionList collectionList: PHCollectionList!)
To
convenience init?(forCollectionList collectionList: PHCollectionList)

Declaration
From
convenience init!(forCollectionList collectionList: PHCollectionList!, childCollections childCollections: PHFetchResult!)
To
convenience init?(forCollectionList collectionList: PHCollectionList, childCollections childCollections: PHFetchResult)

Declaration
From
func insertChildCollections(_ collections: NSFastEnumeration!, atIndexes indexes: NSIndexSet!)
To
func insertChildCollections(_ collections: NSFastEnumeration, atIndexes indexes: NSIndexSet)

Declaration
From
func moveChildCollectionsAtIndexes(_ indexes: NSIndexSet!, toIndex toIndex: Int)
To
func moveChildCollectionsAtIndexes(_ indexes: NSIndexSet, toIndex toIndex: Int)

Declaration
From
var placeholderForCreatedCollectionList: PHObjectPlaceholder! { get }
To
var placeholderForCreatedCollectionList: PHObjectPlaceholder { get }

Declaration
From
func removeChildCollections(_ collections: NSFastEnumeration!)
To
func removeChildCollections(_ collections: NSFastEnumeration)

Declaration
From
func removeChildCollectionsAtIndexes(_ indexes: NSIndexSet!)
To
func removeChildCollectionsAtIndexes(_ indexes: NSIndexSet)

Declaration
From
func replaceChildCollectionsAtIndexes(_ indexes: NSIndexSet!, withChildCollections collections: NSFastEnumeration!)
To
func replaceChildCollectionsAtIndexes(_ indexes: NSIndexSet, withChildCollections collections: NSFastEnumeration)

Declaration
From
var title: String!
To
var title: String

Raw Value Type
From--
ToInt

Raw Value Type
From--
ToInt

Declaration
From
class PHContentEditingInput : NSObject {
    var mediaType: PHAssetMediaType { get }
    var mediaSubtypes: PHAssetMediaSubtype { get }
    @NSCopying var creationDate: NSDate! { get }
    @NSCopying var location: CLLocation! { get }
    var uniformTypeIdentifier: String! { get }
    var adjustmentData: PHAdjustmentData! { get }
    var displaySizeImage: UIImage! { get }
    @NSCopying var fullSizeImageURL: NSURL! { get }
    var fullSizeImageOrientation: Int32 { get }
    var avAsset: AVAsset! { get }
}
To
class PHContentEditingInput : NSObject {
    var mediaType: PHAssetMediaType { get }
    var mediaSubtypes: PHAssetMediaSubtype { get }
    @NSCopying var creationDate: NSDate? { get }
    @NSCopying var location: CLLocation? { get }
    var uniformTypeIdentifier: String? { get }
    var adjustmentData: PHAdjustmentData { get }
    var displaySizeImage: UIImage? { get }
    @NSCopying var fullSizeImageURL: NSURL? { get }
    var fullSizeImageOrientation: Int32 { get }
    var avAsset: AVAsset? { get }
    var audiovisualAsset: AVAsset? { get }
}

Declaration
From
var adjustmentData: PHAdjustmentData! { get }
To
var adjustmentData: PHAdjustmentData { get }

DeclarationDeprecation
From
var avAsset: AVAsset! { get }
--
To
var avAsset: AVAsset? { get }
iOS 9.0

Declaration
From
@NSCopying var creationDate: NSDate! { get }
To
@NSCopying var creationDate: NSDate? { get }

Declaration
From
var displaySizeImage: UIImage! { get }
To
var displaySizeImage: UIImage? { get }

Declaration
From
@NSCopying var fullSizeImageURL: NSURL! { get }
To
@NSCopying var fullSizeImageURL: NSURL? { get }

Declaration
From
@NSCopying var location: CLLocation! { get }
To
@NSCopying var location: CLLocation? { get }

Declaration
From
var uniformTypeIdentifier: String! { get }
To
var uniformTypeIdentifier: String? { get }

Declaration
From
class PHContentEditingInputRequestOptions : NSObject {
    var canHandleAdjustmentData: ((PHAdjustmentData!) -> Bool)!
    var networkAccessAllowed: Bool
    var progressHandler: ((Double, UnsafeMutablePointer<ObjCBool>) -> Void)!
}
To
class PHContentEditingInputRequestOptions : NSObject {
    var canHandleAdjustmentData: (PHAdjustmentData) -> Bool
    var networkAccessAllowed: Bool
    var progressHandler: ((Double, UnsafeMutablePointer<ObjCBool>) -> Void)?
}

Declaration
From
var canHandleAdjustmentData: ((PHAdjustmentData!) -> Bool)!
To
var canHandleAdjustmentData: (PHAdjustmentData) -> Bool

Declaration
From
var progressHandler: ((Double, UnsafeMutablePointer<ObjCBool>) -> Void)!
To
var progressHandler: ((Double, UnsafeMutablePointer<ObjCBool>) -> Void)?

Declaration
From
class PHContentEditingOutput : NSObject {
    init!(contentEditingInput contentEditingInput: PHContentEditingInput!)
    var adjustmentData: PHAdjustmentData!
    @NSCopying var renderedContentURL: NSURL! { get }
}
extension PHContentEditingOutput {
    init!(placeholderForCreatedAsset placeholderForCreatedAsset: PHObjectPlaceholder!)
}
To
class PHContentEditingOutput : NSObject {
    init(contentEditingInput contentEditingInput: PHContentEditingInput)
    var adjustmentData: PHAdjustmentData?
    @NSCopying var renderedContentURL: NSURL { get }
}
extension PHContentEditingOutput {
    init(placeholderForCreatedAsset placeholderForCreatedAsset: PHObjectPlaceholder)
}

Declaration
From
var adjustmentData: PHAdjustmentData!
To
var adjustmentData: PHAdjustmentData?

Declaration
From
init!(contentEditingInput contentEditingInput: PHContentEditingInput!)
To
init(contentEditingInput contentEditingInput: PHContentEditingInput)

Declaration
From
init!(placeholderForCreatedAsset placeholderForCreatedAsset: PHObjectPlaceholder!)
To
init(placeholderForCreatedAsset placeholderForCreatedAsset: PHObjectPlaceholder)

Declaration
From
@NSCopying var renderedContentURL: NSURL! { get }
To
@NSCopying var renderedContentURL: NSURL { get }

Declaration
From
class PHFetchOptions : NSObject, NSCopying {
    var predicate: NSPredicate!
    var sortDescriptors: [AnyObject]!
    var includeHiddenAssets: Bool
    var includeAllBurstAssets: Bool
    var wantsIncrementalChangeDetails: Bool
}
To
class PHFetchOptions : NSObject, NSCopying {
    var predicate: NSPredicate?
    var sortDescriptors: [NSSortDescriptor]?
    var includeHiddenAssets: Bool
    var includeAllBurstAssets: Bool
    var includeAssetSourceTypes: PHAssetSourceType
    var fetchLimit: Int
    var wantsIncrementalChangeDetails: Bool
}

Declaration
From
var predicate: NSPredicate!
To
var predicate: NSPredicate?

Declaration
From
var sortDescriptors: [AnyObject]!
To
var sortDescriptors: [NSSortDescriptor]?

Modified PHFetchResult
Declaration
From
class PHFetchResult : NSObject, NSCopying, NSFastEnumeration {
    var count: Int { get }
    func objectAtIndex(_ index: Int) -> AnyObject!
    subscript (idx: Int) -> AnyObject! { get }
    func objectAtIndexedSubscript(_ idx: Int) -> AnyObject!
    func containsObject(_ anObject: AnyObject!) -> Bool
    func indexOfObject(_ anObject: AnyObject!) -> Int
    func indexOfObject(_ anObject: AnyObject!, inRange range: NSRange) -> Int
    var firstObject: AnyObject! { get }
    var lastObject: AnyObject! { get }
    func objectsAtIndexes(_ indexes: NSIndexSet!) -> [AnyObject]!
    func enumerateObjectsUsingBlock(_ block: ((AnyObject!, Int, UnsafeMutablePointer<ObjCBool>) -> Void)!)
    func enumerateObjectsWithOptions(_ opts: NSEnumerationOptions, usingBlock block: ((AnyObject!, Int, UnsafeMutablePointer<ObjCBool>) -> Void)!)
    func enumerateObjectsAtIndexes(_ s: NSIndexSet!, options opts: NSEnumerationOptions, usingBlock block: ((AnyObject!, Int, UnsafeMutablePointer<ObjCBool>) -> Void)!)
    func countOfAssetsWithMediaType(_ mediaType: PHAssetMediaType) -> Int
}
To
class PHFetchResult : NSObject, NSCopying, NSFastEnumeration {
    var count: Int { get }
    func objectAtIndex(_ index: Int) -> AnyObject
    subscript (_ idx: Int) -> AnyObject { get }
    func objectAtIndexedSubscript(_ idx: Int) -> AnyObject
    func containsObject(_ anObject: AnyObject) -> Bool
    func indexOfObject(_ anObject: AnyObject) -> Int
    func indexOfObject(_ anObject: AnyObject, inRange range: NSRange) -> Int
    var firstObject: AnyObject? { get }
    var lastObject: AnyObject? { get }
    func objectsAtIndexes(_ indexes: NSIndexSet) -> [AnyObject]
    func enumerateObjectsUsingBlock(_ block: (AnyObject, Int, UnsafeMutablePointer<ObjCBool>) -> Void)
    func enumerateObjectsWithOptions(_ opts: NSEnumerationOptions, usingBlock block: (AnyObject, Int, UnsafeMutablePointer<ObjCBool>) -> Void)
    func enumerateObjectsAtIndexes(_ s: NSIndexSet, options opts: NSEnumerationOptions, usingBlock block: (AnyObject, Int, UnsafeMutablePointer<ObjCBool>) -> Void)
    func countOfAssetsWithMediaType(_ mediaType: PHAssetMediaType) -> Int
}

Declaration
From
func containsObject(_ anObject: AnyObject!) -> Bool
To
func containsObject(_ anObject: AnyObject) -> Bool

Declaration
From
func enumerateObjectsAtIndexes(_ s: NSIndexSet!, options opts: NSEnumerationOptions, usingBlock block: ((AnyObject!, Int, UnsafeMutablePointer<ObjCBool>) -> Void)!)
To
func enumerateObjectsAtIndexes(_ s: NSIndexSet, options opts: NSEnumerationOptions, usingBlock block: (AnyObject, Int, UnsafeMutablePointer<ObjCBool>) -> Void)

Declaration
From
func enumerateObjectsUsingBlock(_ block: ((AnyObject!, Int, UnsafeMutablePointer<ObjCBool>) -> Void)!)
To
func enumerateObjectsUsingBlock(_ block: (AnyObject, Int, UnsafeMutablePointer<ObjCBool>) -> Void)

Declaration
From
func enumerateObjectsWithOptions(_ opts: NSEnumerationOptions, usingBlock block: ((AnyObject!, Int, UnsafeMutablePointer<ObjCBool>) -> Void)!)
To
func enumerateObjectsWithOptions(_ opts: NSEnumerationOptions, usingBlock block: (AnyObject, Int, UnsafeMutablePointer<ObjCBool>) -> Void)

Declaration
From
var firstObject: AnyObject! { get }
To
var firstObject: AnyObject? { get }

Declaration
From
func indexOfObject(_ anObject: AnyObject!) -> Int
To
func indexOfObject(_ anObject: AnyObject) -> Int

Declaration
From
func indexOfObject(_ anObject: AnyObject!, inRange range: NSRange) -> Int
To
func indexOfObject(_ anObject: AnyObject, inRange range: NSRange) -> Int

Declaration
From
var lastObject: AnyObject! { get }
To
var lastObject: AnyObject? { get }

Declaration
From
func objectAtIndex(_ index: Int) -> AnyObject!
To
func objectAtIndex(_ index: Int) -> AnyObject

Declaration
From
func objectsAtIndexes(_ indexes: NSIndexSet!) -> [AnyObject]!
To
func objectsAtIndexes(_ indexes: NSIndexSet) -> [AnyObject]

Declaration
From
subscript (idx: Int) -> AnyObject! { get }
To
subscript (_ idx: Int) -> AnyObject { get }

Declaration
From
class PHFetchResultChangeDetails : NSObject {
    var fetchResultBeforeChanges: PHFetchResult! { get }
    var fetchResultAfterChanges: PHFetchResult! { get }
    var hasIncrementalChanges: Bool { get }
    var removedIndexes: NSIndexSet! { get }
    var removedObjects: [AnyObject]! { get }
    var insertedIndexes: NSIndexSet! { get }
    var insertedObjects: [AnyObject]! { get }
    var changedIndexes: NSIndexSet! { get }
    var changedObjects: [AnyObject]! { get }
    func enumerateMovesWithBlock(_ handler: ((Int, Int) -> Void)!)
    var hasMoves: Bool { get }
    convenience init!(fromFetchResult fromResult: PHFetchResult!, toFetchResult toResult: PHFetchResult!, changedObjects changedObjects: [AnyObject]!)
    class func changeDetailsFromFetchResult(_ fromResult: PHFetchResult!, toFetchResult toResult: PHFetchResult!, changedObjects changedObjects: [AnyObject]!) -> Self!
}
To
class PHFetchResultChangeDetails : NSObject {
    var fetchResultBeforeChanges: PHFetchResult { get }
    var fetchResultAfterChanges: PHFetchResult { get }
    var hasIncrementalChanges: Bool { get }
    var removedIndexes: NSIndexSet? { get }
    var removedObjects: [PHObject] { get }
    var insertedIndexes: NSIndexSet? { get }
    var insertedObjects: [PHObject] { get }
    var changedIndexes: NSIndexSet? { get }
    var changedObjects: [PHObject] { get }
    func enumerateMovesWithBlock(_ handler: (Int, Int) -> Void)
    var hasMoves: Bool { get }
    convenience init(fromFetchResult fromResult: PHFetchResult, toFetchResult toResult: PHFetchResult, changedObjects changedObjects: [PHObject])
    class func changeDetailsFromFetchResult(_ fromResult: PHFetchResult, toFetchResult toResult: PHFetchResult, changedObjects changedObjects: [PHObject]) -> Self
}

Declaration
From
var changedIndexes: NSIndexSet! { get }
To
var changedIndexes: NSIndexSet? { get }

Declaration
From
var changedObjects: [AnyObject]! { get }
To
var changedObjects: [PHObject] { get }

Declaration
From
func enumerateMovesWithBlock(_ handler: ((Int, Int) -> Void)!)
To
func enumerateMovesWithBlock(_ handler: (Int, Int) -> Void)

Declaration
From
var fetchResultAfterChanges: PHFetchResult! { get }
To
var fetchResultAfterChanges: PHFetchResult { get }

Declaration
From
var fetchResultBeforeChanges: PHFetchResult! { get }
To
var fetchResultBeforeChanges: PHFetchResult { get }

Declaration
From
convenience init!(fromFetchResult fromResult: PHFetchResult!, toFetchResult toResult: PHFetchResult!, changedObjects changedObjects: [AnyObject]!)
To
convenience init(fromFetchResult fromResult: PHFetchResult, toFetchResult toResult: PHFetchResult, changedObjects changedObjects: [PHObject])

Declaration
From
var insertedIndexes: NSIndexSet! { get }
To
var insertedIndexes: NSIndexSet? { get }

Declaration
From
var insertedObjects: [AnyObject]! { get }
To
var insertedObjects: [PHObject] { get }

Declaration
From
var removedIndexes: NSIndexSet! { get }
To
var removedIndexes: NSIndexSet? { get }

Declaration
From
var removedObjects: [AnyObject]! { get }
To
var removedObjects: [PHObject] { get }

DeclarationRaw Value Type
From
enum PHImageContentMode : Int {
    case AspectFit
    case AspectFill
}
--
To
enum PHImageContentMode : Int {
    case AspectFit
    case AspectFill
    static var Default: PHImageContentMode { get }
}
Int

Declaration
From
class PHImageManager : NSObject {
    class func defaultManager() -> PHImageManager!
    func requestImageForAsset(_ asset: PHAsset!, targetSize targetSize: CGSize, contentMode contentMode: PHImageContentMode, options options: PHImageRequestOptions!, resultHandler resultHandler: ((UIImage!, [NSObject : AnyObject]!) -> Void)!) -> PHImageRequestID
    func requestImageDataForAsset(_ asset: PHAsset!, options options: PHImageRequestOptions!, resultHandler resultHandler: ((NSData!, String!, UIImageOrientation, [NSObject : AnyObject]!) -> Void)!) -> PHImageRequestID
    func cancelImageRequest(_ requestID: PHImageRequestID)
    func requestPlayerItemForVideo(_ asset: PHAsset!, options options: PHVideoRequestOptions!, resultHandler resultHandler: ((AVPlayerItem!, [NSObject : AnyObject]!) -> Void)!) -> PHImageRequestID
    func requestExportSessionForVideo(_ asset: PHAsset!, options options: PHVideoRequestOptions!, exportPreset exportPreset: String!, resultHandler resultHandler: ((AVAssetExportSession!, [NSObject : AnyObject]!) -> Void)!) -> PHImageRequestID
    func requestAVAssetForVideo(_ asset: PHAsset!, options options: PHVideoRequestOptions!, resultHandler resultHandler: ((AVAsset!, AVAudioMix!, [NSObject : AnyObject]!) -> Void)!) -> PHImageRequestID
}
To
class PHImageManager : NSObject {
    class func defaultManager() -> PHImageManager
    func requestImageForAsset(_ asset: PHAsset, targetSize targetSize: CGSize, contentMode contentMode: PHImageContentMode, options options: PHImageRequestOptions?, resultHandler resultHandler: (UIImage?, [NSObject : AnyObject]?) -> Void) -> PHImageRequestID
    func requestImageDataForAsset(_ asset: PHAsset, options options: PHImageRequestOptions?, resultHandler resultHandler: (NSData?, String?, UIImageOrientation, [NSObject : AnyObject]?) -> Void) -> PHImageRequestID
    func cancelImageRequest(_ requestID: PHImageRequestID)
    func requestPlayerItemForVideo(_ asset: PHAsset, options options: PHVideoRequestOptions?, resultHandler resultHandler: (AVPlayerItem?, [NSObject : AnyObject]?) -> Void) -> PHImageRequestID
    func requestExportSessionForVideo(_ asset: PHAsset, options options: PHVideoRequestOptions?, exportPreset exportPreset: String, resultHandler resultHandler: (AVAssetExportSession?, [NSObject : AnyObject]?) -> Void) -> PHImageRequestID
    func requestAVAssetForVideo(_ asset: PHAsset, options options: PHVideoRequestOptions?, resultHandler resultHandler: (AVAsset?, AVAudioMix?, [NSObject : AnyObject]?) -> Void) -> PHImageRequestID
}

Declaration
From
class func defaultManager() -> PHImageManager!
To
class func defaultManager() -> PHImageManager

Declaration
From
func requestAVAssetForVideo(_ asset: PHAsset!, options options: PHVideoRequestOptions!, resultHandler resultHandler: ((AVAsset!, AVAudioMix!, [NSObject : AnyObject]!) -> Void)!) -> PHImageRequestID
To
func requestAVAssetForVideo(_ asset: PHAsset, options options: PHVideoRequestOptions?, resultHandler resultHandler: (AVAsset?, AVAudioMix?, [NSObject : AnyObject]?) -> Void) -> PHImageRequestID

Declaration
From
func requestExportSessionForVideo(_ asset: PHAsset!, options options: PHVideoRequestOptions!, exportPreset exportPreset: String!, resultHandler resultHandler: ((AVAssetExportSession!, [NSObject : AnyObject]!) -> Void)!) -> PHImageRequestID
To
func requestExportSessionForVideo(_ asset: PHAsset, options options: PHVideoRequestOptions?, exportPreset exportPreset: String, resultHandler resultHandler: (AVAssetExportSession?, [NSObject : AnyObject]?) -> Void) -> PHImageRequestID

Declaration
From
func requestImageDataForAsset(_ asset: PHAsset!, options options: PHImageRequestOptions!, resultHandler resultHandler: ((NSData!, String!, UIImageOrientation, [NSObject : AnyObject]!) -> Void)!) -> PHImageRequestID
To
func requestImageDataForAsset(_ asset: PHAsset, options options: PHImageRequestOptions?, resultHandler resultHandler: (NSData?, String?, UIImageOrientation, [NSObject : AnyObject]?) -> Void) -> PHImageRequestID

Declaration
From
func requestImageForAsset(_ asset: PHAsset!, targetSize targetSize: CGSize, contentMode contentMode: PHImageContentMode, options options: PHImageRequestOptions!, resultHandler resultHandler: ((UIImage!, [NSObject : AnyObject]!) -> Void)!) -> PHImageRequestID
To
func requestImageForAsset(_ asset: PHAsset, targetSize targetSize: CGSize, contentMode contentMode: PHImageContentMode, options options: PHImageRequestOptions?, resultHandler resultHandler: (UIImage?, [NSObject : AnyObject]?) -> Void) -> PHImageRequestID

Declaration
From
func requestPlayerItemForVideo(_ asset: PHAsset!, options options: PHVideoRequestOptions!, resultHandler resultHandler: ((AVPlayerItem!, [NSObject : AnyObject]!) -> Void)!) -> PHImageRequestID
To
func requestPlayerItemForVideo(_ asset: PHAsset, options options: PHVideoRequestOptions?, resultHandler resultHandler: (AVPlayerItem?, [NSObject : AnyObject]?) -> Void) -> PHImageRequestID

Declaration
From
class PHImageRequestOptions : NSObject, NSCopying {
    var version: PHImageRequestOptionsVersion
    var deliveryMode: PHImageRequestOptionsDeliveryMode
    var resizeMode: PHImageRequestOptionsResizeMode
    var normalizedCropRect: CGRect
    var networkAccessAllowed: Bool
    var synchronous: Bool
    var progressHandler: PHAssetImageProgressHandler!
}
To
class PHImageRequestOptions : NSObject, NSCopying {
    var version: PHImageRequestOptionsVersion
    var deliveryMode: PHImageRequestOptionsDeliveryMode
    var resizeMode: PHImageRequestOptionsResizeMode
    var normalizedCropRect: CGRect
    var networkAccessAllowed: Bool
    var synchronous: Bool
    var progressHandler: PHAssetImageProgressHandler?
}

Declaration
From
var progressHandler: PHAssetImageProgressHandler!
To
var progressHandler: PHAssetImageProgressHandler?

Raw Value Type
From--
ToInt

Raw Value Type
From--
ToInt

Raw Value Type
From--
ToInt

Modified PHObject
Declaration
From
class PHObject : NSObject, NSCopying {
    var localIdentifier: String! { get }
}
To
class PHObject : NSObject, NSCopying {
    var localIdentifier: String { get }
}

Declaration
From
var localIdentifier: String! { get }
To
var localIdentifier: String { get }

Declaration
From
class PHObjectChangeDetails : NSObject {
    var objectBeforeChanges: AnyObject! { get }
    var objectAfterChanges: AnyObject! { get }
    var assetContentChanged: Bool { get }
    var objectWasDeleted: Bool { get }
}
To
class PHObjectChangeDetails : NSObject {
    var objectBeforeChanges: PHObject { get }
    var objectAfterChanges: PHObject? { get }
    var assetContentChanged: Bool { get }
    var objectWasDeleted: Bool { get }
}

Declaration
From
var objectAfterChanges: AnyObject! { get }
To
var objectAfterChanges: PHObject? { get }

Declaration
From
var objectBeforeChanges: AnyObject! { get }
To
var objectBeforeChanges: PHObject { get }

Declaration
From
class PHPhotoLibrary : NSObject {
    class func sharedPhotoLibrary() -> PHPhotoLibrary!
    class func authorizationStatus() -> PHAuthorizationStatus
    class func requestAuthorization(_ handler: ((PHAuthorizationStatus) -> Void)!)
    func performChanges(_ changeBlock: dispatch_block_t!, completionHandler completionHandler: ((Bool, NSError!) -> Void)!)
    func performChangesAndWait(_ changeBlock: dispatch_block_t!, error error: NSErrorPointer) -> Bool
    func registerChangeObserver(_ observer: PHPhotoLibraryChangeObserver!)
    func unregisterChangeObserver(_ observer: PHPhotoLibraryChangeObserver!)
}
To
class PHPhotoLibrary : NSObject {
    class func sharedPhotoLibrary() -> PHPhotoLibrary
    class func authorizationStatus() -> PHAuthorizationStatus
    class func requestAuthorization(_ handler: (PHAuthorizationStatus) -> Void)
    func performChanges(_ changeBlock: dispatch_block_t, completionHandler completionHandler: ((Bool, NSError?) -> Void)?)
    func performChangesAndWait(_ changeBlock: dispatch_block_t) throws
    func registerChangeObserver(_ observer: PHPhotoLibraryChangeObserver)
    func unregisterChangeObserver(_ observer: PHPhotoLibraryChangeObserver)
}

Declaration
From
func performChanges(_ changeBlock: dispatch_block_t!, completionHandler completionHandler: ((Bool, NSError!) -> Void)!)
To
func performChanges(_ changeBlock: dispatch_block_t, completionHandler completionHandler: ((Bool, NSError?) -> Void)?)

Declaration
From
func performChangesAndWait(_ changeBlock: dispatch_block_t!, error error: NSErrorPointer) -> Bool
To
func performChangesAndWait(_ changeBlock: dispatch_block_t) throws

Declaration
From
func registerChangeObserver(_ observer: PHPhotoLibraryChangeObserver!)
To
func registerChangeObserver(_ observer: PHPhotoLibraryChangeObserver)

Declaration
From
class func requestAuthorization(_ handler: ((PHAuthorizationStatus) -> Void)!)
To
class func requestAuthorization(_ handler: (PHAuthorizationStatus) -> Void)

Declaration
From
class func sharedPhotoLibrary() -> PHPhotoLibrary!
To
class func sharedPhotoLibrary() -> PHPhotoLibrary

Declaration
From
func unregisterChangeObserver(_ observer: PHPhotoLibraryChangeObserver!)
To
func unregisterChangeObserver(_ observer: PHPhotoLibraryChangeObserver)

Declaration
From
protocol PHPhotoLibraryChangeObserver : NSObjectProtocol {
    func photoLibraryDidChange(_ changeInstance: PHChange!)
}
To
protocol PHPhotoLibraryChangeObserver : NSObjectProtocol {
    func photoLibraryDidChange(_ changeInstance: PHChange)
}

Declaration
From
func photoLibraryDidChange(_ changeInstance: PHChange!)
To
func photoLibraryDidChange(_ changeInstance: PHChange)

Declaration
From
class PHVideoRequestOptions : NSObject {
    var networkAccessAllowed: Bool
    var version: PHVideoRequestOptionsVersion
    var deliveryMode: PHVideoRequestOptionsDeliveryMode
    var progressHandler: PHAssetVideoProgressHandler!
}
To
class PHVideoRequestOptions : NSObject {
    var networkAccessAllowed: Bool
    var version: PHVideoRequestOptionsVersion
    var deliveryMode: PHVideoRequestOptionsDeliveryMode
    var progressHandler: PHAssetVideoProgressHandler?
}

Declaration
From
var progressHandler: PHAssetVideoProgressHandler!
To
var progressHandler: PHAssetVideoProgressHandler?

Raw Value Type
From--
ToInt

Raw Value Type
From--
ToInt

Declaration
From
typealias PHAssetImageProgressHandler = (Double, NSError!, UnsafeMutablePointer<ObjCBool>, [NSObject : AnyObject]!) -> Void
To
typealias PHAssetImageProgressHandler = (Double, NSError?, UnsafeMutablePointer<ObjCBool>, [NSObject : AnyObject]?) -> Void

Declaration
From
typealias PHAssetVideoProgressHandler = (Double, NSError!, UnsafeMutablePointer<ObjCBool>, [NSObject : AnyObject]!) -> Void
To
typealias PHAssetVideoProgressHandler = (Double, NSError?, UnsafeMutablePointer<ObjCBool>, [NSObject : AnyObject]?) -> Void