2013-06-14 5 views
14

मैं जब मैं एक iPhone 5 पर CoreBluetooth का उपयोग करता है मेरी अनुप्रयोग चलाने यह त्रुटि मिलती रहती: <CBConcreteCentralManager: 0x2007d590> is not powered onजब CBCentralManager के राज्य कभी पर संचालित किया जाएगा, लेकिन अभी भी दे मुझे एक चेतावनी "चालू नहीं"?

लेकिन जब मैं अपने कार्यक्रम के एक और केवल CBCentralManager वस्तु पर state कहते हैं, यह रिटर्न 5, जो CBCentralManagerStatePoweredOn है। तो यह चालू है, फिर भी मुझे यह त्रुटि मिलती है। आईफोन का ब्लूटूथ भी सक्षम है।

बस सामान्य रूप में

, जब यह कभी होगा? मैं भी नहीं पता है कि जब कार्यक्रम चलाता है, क्योंकि मैं क्या संदेशों परस्पर विरोधी की तरह लग रहा हो रही है चल रहा है।

उत्तर

22

आप शुरू में जब तक centralManager centralManagerDidUpdateState: के कॉलबैक हो जाता है जब आप अनुप्रयोग जूते कर रहे हैं इंतजार करना। फिर हर बार, मैं किसी केंद्रीय प्रबंधक कॉल करने से पहले राज्य की जांच करने की सलाह देता हूं। केंद्र को अद्यतन करने का मौका मिलने से पहले आप स्कैन को कॉल करने या पुनर्प्राप्त करने की अधिक संभावना रखते हैं। यह सुनिश्चित करने के बाद कि आप इसे जानते हैं, केवल आपको कॉल विधियां ही सुनिश्चित करें। अगर आप प्रत्येक कॉल को लपेटते हैं तो आपको त्रुटि नहीं मिलेगी, अगर पहले राज्य की जांच करने वाले बयान।

- (void)centralManagerDidUpdateState:(CBCentralManager *)central 
{ 
    if(central.state==CBCentralManagerStatePoweredOn) 
    { 
     //Now do your scanning and retrievals 
    } 
} 

अन्यथा बस प्रत्येक कॉल करने से पहले एक राज्य की जांच के अंदर अपने केंद्रीय लपेट:

if(yourCentral.state==CBCentralManagerStatePoweredOn) 
{ 
//you're good to go on calling centralManager methods 
} 
+0

हां, यही समस्या थी। धन्यवाद। मेरे लिए धन्यवाद – sudo

+0

यह समस्या को हल किया। किसी कारण से यह मेरे लिए हो रहा शुरू कर दिया जब मैं 5 जीएम सिम्युलेटर Xcode करने के लिए उन्नत। – Dan

+1

मुझे यकीन है कि ऐप्पल अब एक्सकोड 5 –

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