2013-04-06 12 views
13

को जोड़ने के दौरान सीबीपीरिफेरल को हटा दिया जा रहा है, मैं ब्लूटूथ बीटीएलई डिवाइस से कनेक्ट करने का प्रयास कर रहा हूं। मुझे परिधीय की खोज में कोई समस्या नहीं है।आईओएस 6:

हालांकि, जब मैं परिधीय से कनेक्ट करने का प्रयास करता हूं, तो मुझे निम्नलिखित चेतावनी मिली।

2013-04-05 22: 10: 36.110 CoreBluetooth [चेतावनी] 7DA9E322-D710-081B-4A9D-526DE546B13C, नाम = "का पता लगाएं, मेरी गाड़ी स्मार्टर", IsConnected = सं> वहीं कनेक्ट dealloc'ed की जा रही है

इसके अलावा, प्रासंगिक प्रतिनिधि तरीकों में से न तो कहा जाता है:

didConnectPeripheral: 
didFailToConnectPeripheral: 

मैं घंटों के लिए इस के साथ संघर्ष कर रहा है ... कृपया मदद करते हैं।

+0

क्या आप एआरसी का उपयोग कर रहे हैं? – Larme

उत्तर

37

संक्षिप्त उत्तर: आपको परिधीय बनाए रखने की आवश्यकता है।

लंबी व्याख्या: कोर ब्लूटूथ यह नहीं जानता कि आप इस परिधीय में रुचि रखते हैं या नहीं। इससे कनेक्ट करना पर्याप्त नहीं है, आपको इसे बनाए रखने की आवश्यकता है।

वर्ग आप सभी कि जहां कर रहे हैं करने के लिए एक संपत्ति जोड़ें:

@property (strong) CBPeripheral  *connectingPeripheral; 

और जब उपकरण की खोज की है तो इस संपत्ति के लिए परिधीय असाइन करते हैं, इससे पहले कि आप didDiscoverPeripheral से लौटने:

- (void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary *)advertisementData RSSI:(NSNumber *)RSSI 
{ 
    DDLogVerbose(@"Discovered peripheral: %@ advertisement %@ RSSI: %@", [peripheral description], [advertisementData description], [RSSI description]); 

    [central connectPeripheral:peripheral options:nil]; 
    self.connectingPeripheral = peripheral; 
} 
+0

यह चाल है! यह मुझे पागल कर रहा है ... बहुत धन्यवाद! – user2247438

+4

कृपया उत्तर दें (इसके बगल में हरा टिक)। यह लोगों को यह जानने में सहायता करता है कि यह उत्तर कुछ और अंक और बैज प्राप्त करने के लिए काम करता है;) – sarfata

+0

मुझे एक ही समस्या है। मैं संदर्भ को सरणी में रख रहा हूं लेकिन जब मैं कनेक्ट करने का प्रयास करता हूं तो मुझे यह त्रुटि मिलती है। @property NSMutableArray * heartRateMonitors; [स्वयं सेट हार्टरेट मॉनिटर: [[एनएसएमयूटेबलएरे ऑलोक] init]]; [[self heartRateMonitors] addObject: परिधीय]; यदि मैं इसे आपके उदाहरण की तरह एक व्यक्तिगत चर में संग्रहीत करता हूं तो समस्या दूर हो जाती है। कोई विचार क्या मैंने गलत किया है? –