2012-09-04 4 views
7

के साथ 128 बिट यूयूआईडी बनाएं IOS कोरबूटूथ फ्रेमवर्क के साथ 128 बिट बनाने की कोशिश की।स्ट्रिंग

कोड है कि मैं लिखा है यहाँ है:

//16Bit Value-String 
static NSString * const [email protected]"FFC0"; 

//Var for 128Bit String 
static NSString * ADVERTISING_SERVICE; 


//A Base UUID 
static NSString * const [email protected]"0405060708090A0B0C0D0E0F"; 

+ (NSString*) get128BitUUID:(NSString*)uuid{ 
    return [[NSString alloc] initWithFormat:@"0000%@%@",uuid,BASE_UUID]; 
} 

ADVERTISING_SERVICE = [UUIDFuncs get128BitUUID:ADVERTISING_SERVICE_16]; 

और अब जब मैं इस के साथ एक UUID प्राप्त करने की कोशिश:

if([service.UUID isEqual:[CBUUID UUIDWithString:ADVERTISING_SERVICE] ]){ 
    [peripheral discoverCharacteristics:nil forService:service]; 
} 

मैं इस त्रुटि संदेश मिलता है:

2012-09-04 14:18:06.127 blukiiFirmwareTest[3154:707] *** Terminating app due to uncaught 
exception 'Invalid UUID string', reason: 'String 0000FFC00405060708090A0B0C0D0E0F 
does not represent a valid UUID' 

मुझे समझ में नहीं आता क्यों; स्ट्रिंग एक 16 बाइट लंबी यूयूआईडी है, यह 128 बिट है तो मुझे यह त्रुटि क्यों मिल रही है?

+1

[UUID] (http://en.wikipedia.org/wiki/Universally_unique_identifier#Definition), एक मानक प्रारूप है न केवल एक हेक्सटेक्स्ट की सीधी स्ट्रिंग। – PenguinCoder

+0

जब मैं ब्लूटूथ बेस यूयूआईडी का उपयोग करता हूं तो वही त्रुटि होती है। – nivek

+1

@nivek तो, आपने "U13" जैसे बेस यूयूआईडी का उपयोग करते समय इस समस्या को कैसे हल किया? शायद यह वास्तव में बहुत समय पहले है, लेकिन मैं भी इस मुद्दे को पूरा करता हूं। – Calios

उत्तर

19

कमांड लाइन प्रकार uuidgen पर एक नई यादृच्छिक UUID बनाने के लिए:

0C50D390-DC8E-436B-8AD0-A36D1B304B18 

आप इसे देखेंगे 8-4-4-4-12 के रूप के रूप में से जुड़े हुए विकिपीडिया पृष्ठ ने उल्लेख किया है @ पेंगुइनकोडर भी।

इस प्रारूप में एक तार के साथ एक CBUUID बनाना काम करेगा:

CBUUID *uuid = [CBUUID UUIDWithString:@"0C50D390-DC8E-436B-8AD0-A36D1B304B18"]; 
संबंधित मुद्दे