2012-08-30 11 views
8

MPMediaItemPropertyPersistentID कितना अनूठा है? क्या यह एक ही आईट्यून्स खाते से जुड़े किसी अन्य डिवाइस पर आईडी की सूची सिंक करते समय भी काम करेगा?MPMediaItemPropertyPersistentID कितना अनूठा है?

मैं एक आईक्लाउड सिंक्रनाइज़ प्लेलिस्ट समाधान को कार्यान्वित करना चाहता हूं जो आईडी को एक सूची के रूप में संग्रहीत करता है और मुझे यह जानना होगा कि यह संभव होगा या नहीं।

उत्तर

7

प्रति documentation(जोर मेरा) के रूप में ...

आवेदन की शुरूआत भर में और समन्वयित हो जाता है कि मीडिया आइटम के समन्वयन स्थिति में परिवर्तन नहीं करते भर

MPMediaItemPropertyPersistentID पहचानकर्ता के मूल्य बनी रहती है । मान की गारंटी नहीं है एक सिंक/unsync/सिंक चक्र में बनी रहती है।

जैसे, यह देखते हुए कि यह और भी इस आधार पर जारी रहती है नहीं होगा अगर यह एक पर्याप्त मजबूत ढंग से सभी डिवाइस में कायम रहा आश्चर्य होगा, अगर सब पर।

+0

मैं प्रलेखन के इस भाग नहीं छूटा है। ऐसा लगता है कि मुझे एक और तरीके से खोजना होगा ... – miho

+1

थोड़ी सी बदसूरत होने पर, आपको प्रत्येक MPMediaEntity के लिए उपलब्धफोरप्रोपर्टी डेटा के माध्यम से कुछ सुसंगत बनाना पड़ सकता है। (यानी: MPMediaItemPropertyTitle, MPMediaItemPropertyAlbumTitle, MPMediaItemPropertyArtist, आदि) –

4

मेरी समझ में यह संभव नहीं है। मुझे लगता है कि यह आईडी केवल प्रत्येक डिवाइस के लिए लगातार है। यह आईट्यून्स स्टोर में एक विशिष्ट गीत के लिए कोई अद्वितीय पहचानकर्ता नहीं है। यह केवल आपके स्वयं के सिंक किए गए गीतों के लिए एक आईडी है।

जैसा कि आप प्रलेखन पढ़ते हैं, आप देखेंगे कि यह आईडी कितनी कमजोर हो सकती है।

"मान को सिंक/unsync/सिंक चक्र में बने रहने की गारंटी नहीं है।"

तो अगर आप iTunes के साथ अपने गीत डेटाबेस सिंक और शायद फिर से अपने iOS डिवाइस और सिंक से एक गाना हटा सकते हैं और उसे अपने डिवाइस पर वापस रख, तुम नहीं एक ही आईडी फिर से इस गीत के लिए मिल सकता है। और निश्चित रूप से अन्य उपकरणों में नहीं।

तो मुझे लगता है कि आप जो करने की कोशिश कर रहे हैं, वह काम नहीं करेगा, जब तक कि आप आईट्यून्स कैटलॉग के प्रत्येक गीत या मैक पर अपने आईट्यून्स कैटलॉग के लिए दुनिया भर में समान पहचानकर्ता न प्राप्त करें (जहां मैक को आईडी को संभालना है)।

2

अन्य उत्तर एक छोटे से बड़ा अस्पष्ट हैं, इसलिए यहाँ अपने खुद के अनुभव और परीक्षण से एक जवाब है:

1) आप MPMediaItemPropertyPersistentID उपयोग नहीं कर सकते एक आईडी है कि उपकरणों के बीच बराबर है पाने के लिए।
2) MPMediaItemPropertyPersistentID डिवाइस बदल जाएगा जब डिवाइस किसी अन्य आईट्यून्स लाइब्रेरी के साथ सिंक हो जाता है या सभी संगीत डिवाइस से हटा दिया जाता है और फिर फिर से समन्वयित किया जाता है।

आईडी को डिवाइस पर सिंक होने पर आईट्यून्स द्वारा निर्मित और संग्रहीत किया जाता है। यदि यह अनुक्रमित है, तो आईडी हटा दी जाती है।

1

मामले किसी और यहां की भूमि है, मेरे जैसे, एक गूगल खोज का उपयोग कर:

मैं इस बात की पुष्टि क्या middaparka मेरे डिवाइस, जब मेरे संगीत एप्लिकेशन अपग्रेड से पहले से persistentIDs उपयोग करने का प्रयास की एक iOS अपग्रेड करने के बाद ऊपर कहा। आईडी बदल गई थीं, और मैं अपनी लाइब्रेरी से कई गाने सुन रहा था (अनजाने में) कि मैं सामान्य रूप से नहीं सुनता ...

इसलिए मैंने मिडपार्का की सलाह ली और हेशेस से अनन्य-ऑर्डर करके लगातार बने शीर्षक, कलाकारनाम, एल्बम टाइटल और अवधि।"सामान्य ऑपरेटिंग कोड" में आइटम लाने पर एकाधिक स्ट्रिंग तुलनाओं से बचकर, कोर डेटाबेस प्रारंभिकरण के दौरान लगातार की स्थापना करना समय बाद बचाएगा।

लगातार की रणनीति ने गाने के लिए ठीक से काम किया। हालांकि, जब मैंने शीर्षक, कलाकार और रिलीज से एल्बम के लिए हैश बनाया, तो मैं एक टकराव के साथ समाप्त हुआ।

मेरे पास 1 9 76 में जारी विभिन्न कलाकारों द्वारा दो आत्म-शीर्षक वाले एल्बम थे। जब एल्बम के शीर्षक और कलाकार के लिए हैश अनन्य थे, तो उन्होंने एक-दूसरे को रद्द कर दिया। मैं कलाकार की बजाय अवधि के लिए हैश का उपयोग कर समाप्त हुआ, और यह काम किया।

मैं बाद में persistentKeys पैदा करने के लिए एल्गोरिथ्म को परिष्कृत अंत सकता है ...