के बाद से AssetsLibrary
पदावनत है, Photos
का इस्तेमाल करें इसके बजाय ढांचे (आईओएस 8 और बाद में)।
// Deprecated!
import AssetsLibrary
// Swift 3.0
let assetsLibrary = ALAssetsLibrary()
assetsLibrary.addAssetsGroupAlbum(withName: "NewAlbum", resultBlock: { assetsGroup in
print(assetsGroup == nil ? "Already created" : "Success")
}, failureBlock: { error in
print(error)
})
आप नई फ़ोटो बनाने के लिए साझा PHPhotoLibrary
वस्तु का उपयोग कर सकते हैं, लेकिन आप क्योंकि आप संपत्ति Photos.app द्वारा प्रबंधित करने की आवश्यकता है के साथ काम कर रहे होंगे उन्हें विशिष्ट नाम नहीं दे सकता। प्रत्येक संपत्ति में विशिष्ट गुण होते हैं। आप वस्तुओं, अनुरोध परिवर्तन, संपत्ति/थंबनेल लोड हो रहा है और कैशिंग, आदि
लाने एक कस्टम एल्बम बनाने के लिए कर सकते हैं, PHAssetCollectionChangeRequest.creationRequestForAssetCollection(withTitle:
) का इस्तेमाल करें।
संक्षिप्त उदाहरण:
// Swift 3.0
func createPhotoLibraryAlbum(name: String) {
var albumPlaceholder: PHObjectPlaceholder?
PHPhotoLibrary.shared().performChanges({
// Request creating an album with parameter name
let createAlbumRequest = PHAssetCollectionChangeRequest.creationRequestForAssetCollection(withTitle: name)
// Get a placeholder for the new album
albumPlaceholder = createAlbumRequest.placeholderForCreatedAssetCollection
}, completionHandler: { success, error in
if success {
guard let placeholder = albumPlaceholder else {
fatalError("Album placeholder is nil")
}
let fetchResult = PHAssetCollection.fetchAssetCollections(withLocalIdentifiers: [placeholder.localIdentifier], options: nil)
guard let album: PHAssetCollection = fetchResult.firstObject else {
// FetchResult has no PHAssetCollection
return
}
// Saved successfully!
print(album.assetCollectionType)
}
else if let e = error {
// Save album failed with error
}
else {
// Save album failed with no error
}
})
}
को import Photos
पुस्तकालय मत भूलना।
उस एल्बम पर नई फोटो संपत्ति बनाने के लिए, कृपया PHAssetCollectionChangeRequest.creationRequestForAssetCollection(withTitle:
) का उपयोग करें।
// Swift 3.0
func createPhotoOnAlbum(photo: UIImage, album: PHAssetCollection) {
PHPhotoLibrary.shared().performChanges({
// Request creating an asset from the image
let createAssetRequest = PHAssetChangeRequest.creationRequestForAsset(from: photo)
// Request editing the album
guard let albumChangeRequest = PHAssetCollectionChangeRequest(for: album) else {
// Album change request has failed
return
}
// Get a placeholder for the new asset and add it to the album editing request
guard let photoPlaceholder = createAssetRequest.placeholderForCreatedAsset else {
// Photo Placeholder is nil
return
}
albumChangeRequest.addAssets([photoPlaceholder] as NSArray)
}, completionHandler: { success, error in
if success {
// Saved successfully!
}
else if let e = error {
// Save photo failed with error
}
else {
// Save photo failed with no error
}
})
}
अद्यतन:
हम पहुंच का अनुरोध करना फ़ोटो लाइब्रेरी का उपयोग करने में सक्षम होना चाहिए:
PHPhotoLibrary.requestAuthorization { status in
switch status {
...
}
आईओएस 10 के रूप में और इसके बाद के संस्करण हम भी प्रविष्टि जोड़ने की जरूरत "गोपनीयता - फोटो लाइब्रेरी उपयोग विवरण" के लिए लक्ष्य .plist फ़ाइल में पहुंच के लिए:
<key>NSPhotoLibraryUsageDescription</key>
<string>Access to photos is needed to provide app features</string>
हाय .. क्या आपको छवियों को कस्टम नाम देने का तरीका मिला है? –