ios - UIReferenceLibraryViewController hasDictionaryDefinition only works in Simulator on iPhone 5s -


जब मैं इस कोड को कॉल करता हूं:

  NSString * word = @ "हैलो"; Bool प्रतिक्रिया = [UIReferenceLibraryViewController dictionaryHasDefinitionForTerm: शब्द];   

... एक iPhone 5s या इसके बाद के संस्करण पर मुझे 'प्रतिक्रिया' (एक बूल में सही मूल्य मिलता है, इस पर निर्भर करता है कि क्या चर 'शब्द' को स्थानीय शब्दकोश में परिभाषित किया गया है या नहीं।

हालांकि, जब मैं इसे आईफोन 4 एस, 5, 6 या 6+ सिम्युलेटर (लेकिन 5 सी नहीं) पर कॉल करता हूं, तब इसे तुरंत झूठ के रूप में वापस आता है और लिखता है लॉग इन करने के लिए निम्न:

  + [_UIDictionaryManager_availableDefinitionDictionaries] लौटा हुआ शून्य। त्रुटि: त्रुटि डोमेन = एएसईआरओआर कोड = 21 "ऑपरेशन पूरा नहीं हो सका। (एएसआईआरआर त्रुटि 21 - संपत्ति की जानकारी की प्रतिलिपि करने में असमर्थ) "  

शब्दकोश की कार्यक्षमता को iOS 5+ पर काम करना चाहिए। मेरे पास इसका परीक्षण करने के लिए कोई भी iPhone 4s / 5/6/6 + डिवाइस नहीं है। < / P>

क्या चल रहा है?

मुझे लगता है कि अंत में इसका उत्तर मिला यह है कि सांत्वना में संदेश कहने की कोशिश कर रहा है कि उपयोगकर्ता के पास कोई शब्दकोश स्थापित नहीं है।

तथ्य यह है कि

  [UIReferenceLibraryViewController DictionaryHasDefinitionForTerm: शब्द];   

झूठी रिटर्न देता है:

  • शब्द अनिर्धारित है
  • कोई भी शब्दकोश स्थापित नहीं है

    यह वास्तव में वास्तव में काफी बेकार है मेरी विशेष अंग्रेज़ी-केवल ऐप उपयोग-केस में ये सभी को संभालने की मेरी रणनीति है:

    1. अगर [UIReferenceLibraryViewController DictionaryHasDefinitionForTerm: शब्द] सही देता है तो वर्तमान "परिभाषा फ़ंक्शन" को कॉल करें और वापसी करें ।

    2. हालांकि, अगर यह गलत देता है, तो शब्दकोष को कॉल करेंहैसाफिनिशनएक शब्द के साथ जो सभी अंग्रेजी शब्दकोशों में परिभाषित किया जाना चाहिए, जैसे "the" या "शब्द"।

    3. यदि "the" या "शब्द" वापस सही होता है तो शब्दकोश स्थापित किए जाते हैं, लेकिन यह शब्द स्थापित शब्दकोशों में अनिर्धारित है "इस" / "शब्द" का परिणाम कैश करें, इसलिए आपको चरण 2 को दोहराने नहीं पड़े, लेकिन इसे स्थायी रूप से सहेज न दें क्योंकि उपयोगकर्ता या सिस्टम शब्दकोश को हटा सकता है - पूरे शब्दकोश प्रणाली बहुत छोटी गाड़ी लगता है। / P>

    4. यदि "the" या "शब्द" झूठ देता है तो हम इसका मतलब यह ले सकते हैं कि कोई शब्दकोश स्थापित नहीं हैं। इस बिंदु पर मैं मूल शब्द की परिभाषा प्रस्तुत करने के लिए फ़ंक्शन को बुलाता हूं (जो कि "कोई परिभाषा" के साथ स्वाभाविक रूप से नहीं दिखाया जाता है, लेकिन उपयोगकर्ता को एक शब्दकोश स्थापित करने के लिए "प्रबंधन" शब्दकोष फ़ंक्शन तक पहुंचने का एकमात्र तरीका है!) एक संवाद बॉक्स के साथ, जिसमें समझाया गया है कि उपयोगकर्ता को "प्रबंधन" पर क्लिक करने की आवश्यकता है और यदि वे शब्द परिभाषाएं चाहते हैं तो अंग्रेज़ी-भाषा शब्दकोश स्थापित करना होगा।

      आदर्श से एक लंबा रास्ता, लेकिन निश्चित नहीं कि मेरे उपयोग-मामले में मैं क्या कर सकता हूं।

Comments

Popular posts from this blog

php - PDO bindParam() fatal error -

logging - How can I log both the Request.InputStream and Response.OutputStream traffic in my ASP.NET MVC3 Application for specific Actions? -

java - Why my included JSP file won't get processed correctly? -