आईओएस 8 की तस्वीरें.फ्रेमवर्क में, मैं यूआईएममेज को उपयोगकर्ता की फोटो लाइब्रेरी में सहेजने की कोशिश कर रहा हूं, वैसे ही आप सफारी में एक छवि को लंबे समय से दबा सकते हैं और "छवि सहेजें" चुन सकते हैं। आईओएस 7 में, यह केवल एलास्सेट लाइब्रेरी के writeImageToSavedPhotosAlbum:metadata:completionBlock
पर कॉल करके होगा।कौन सी PHAssetCollection एक छवि को बचाने के लिए उपयोग करने के लिए?
आईओएस 8 के लिए हमें एक पीएएसएससेट जोड़ने के लिए एक संपत्ति संग्रह लेने की आवश्यकता है, लेकिन मुझे पता नहीं चल सकता कि कौन सा PHAssetCollection उपयोगकर्ता के "कैमरा रोल" को सहेजने के करीब है (भले ही कोई नहीं है, वास्तव में, iOS 8 में)
[[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{
PHAssetChangeRequest *newAssetRequest = [PHAssetChangeRequest creationRequestForAssetFromImage:image];
newAssetRequest.creationDate = time;
newAssetRequest.location = location;
PHObjectPlaceholder *placeholderAsset = newAssetRequest.placeholderForCreatedAsset;
PHAssetCollectionChangeRequest *addAssetRequest = [PHAssetCollectionChangeRequest changeRequestForAssetCollection:WHICH_ASSET_COLLECTION];
addAssetRequest addAssets:@[placeholderAsset];
} completionHandler:^(BOOL success, NSError *error) {
NSLog(@"Success: %d", success);
}];
मैं "हाल में जोड़ी" स्मार्ट एल्बम को एक्सेस करने की कोशिश की है, लेकिन यह यह करने के लिए नई सामग्री जोड़ने की अनुमति नहीं है।
पूरा करने वाले हैंडलर में, आप नई संपत्ति कैसे प्राप्त करते हैं? –
दस्तावेज़ों के मुताबिक, आप '@property (nonatomic, strong, readonly) PHObjectPlaceholder * placeholderForCreatedAsset' का उपयोग करते हैं, "इस संपत्ति का उपयोग करें यदि आपको उसी परिवर्तन ब्लॉक में परिवर्तन अनुरोध द्वारा बनाई गई संपत्ति का संदर्भ देने की आवश्यकता है। उदाहरण के लिए, निम्न कोड, जब एक फोटो लाइब्रेरी में परिवर्तन ब्लॉक में शामिल होता है, तो एक संपत्ति बनाता है और फिर उसे संग्रह में जोड़ता है: " प्लेसहोल्डर पर अधिक जानकारी के लिए, मैं सुझाव देता हूं [डॉक्स] (https://developer.apple.com /library/prerelease/ios/documentation/Photos/Reference/PHObjectPlaceholder_Class/index.html) उस पर। –
मैंने पहले ही प्लेसहोल्डर ऑब्जेक्ट की कोशिश की है। उदाहरण प्लेसहोल्डर ऑब्जेक्ट को एल्बम परिवर्तन अनुरोध में जोड़ता है, लेकिन मैं संपत्तियों की एक सरणी बनाए रखता हूं। सरणी में प्लेसहोल्डर ऑब्जेक्ट जोड़ना काम नहीं करता था। –