2015-03-02 5 views
6

आईओएस 8 पर एक ऐप पर काम करना, और बहुत सारी तस्वीरें हैंडल करना है, मुझे विशिष्ट रूप से PHassets की पहचान करने की आवश्यकता है लेकिन उपयोग करने के लिए कोई संपत्ति नहीं मिल सकती है? मैंआईओएस 8, फोटोकिट, पीएचएसेट, अद्वितीय पहचानकर्ता

PHObject/localIdentifier 

पर एक संपत्ति यहाँ प्रलेखित पाया

https://developer.apple.com/library/ios/documentation/Photos/Reference/PHObject_Class/index.html#//apple_ref/occ/instp/PHObject/localIdentifier

वहाँ PHAsset पर एक अद्वितीय ID के लिए कोई तरीका है? PHObject उपयोग करने के लिए थोड़ा भारी है।

उत्तर

8

हां, यह उपयोग करने वाली एकमात्र संपत्ति है।

हालांकि, PHObject-hash और -isEqual: विधियों दोनों लागू करता है। यह NSCopying प्रोटोकॉल के अनुरूप भी है, जिसका अर्थ है कि इसे शब्दकोशों में एक कुंजी के रूप में उपयोग किया जा सकता है और इसे सेट में रखा जा सकता है। यह PHAsset ऑब्जेक्ट्स को फिर से लोड करते समय भी काम करना जारी रखता है। यह ALAsset वर्ग पर एक बड़ी जीत है। -isEqual का कार्यान्वयन localIdentifier संपत्ति से बहुत तेज़ है और मुख्य धागे पर सुरक्षित रूप से उपयोग किया जा सकता है। हुड के नीचे क्या है इसका विचार पाने के लिए आप प्रोफाइलर का उपयोग कर सकते हैं।

+0

हाय, तो PHAsset में हैश संपत्ति है, लेकिन क्या मुझे अपना स्वयं का असर लागू करने की आवश्यकता है? PHAsset के लिए? – Huang

+1

नहीं, PHAsset दोनों, साथ ही एनएससीपीआईपी प्रोटोकॉल लागू करता है। – kean

+0

क्या यह स्थानीय पहचानकर्ता वैश्विक रूप से अद्वितीय है? – WYS

संबंधित मुद्दे