2013-11-19 3 views
1

Я пытаюсь запустить код, но его отчет утечки памяти при использовании статического анализатора. на этой линии, так как потенциальные утечки объекта хранится в «строка»Потенциальная утечка объекта, хранящегося в «строке»

return (__bridge NSString *)string; 

здесь весь метод:

+(NSString *)GUID 
{ 
CFUUIDRef theUUID = CFUUIDCreate(NULL); 
CFStringRef string = CFUUIDCreateString(NULL, theUUID); 
CFRelease(theUUID); 
return (__bridge NSString *)string; 
} 

дайте мне знать, если кто-то еще нужно больше информации.

ответ

3

Попробуйте это:

+(NSString *)GUID 
{ 
    CFUUIDRef theUUID = CFUUIDCreate(NULL); 
    CFStringRef string = CFUUIDCreateString(NULL, theUUID); 
    CFRelease(theUUID); 
    NSString *str = (__bridge NSString *)string; 
    CFRelease(string); 
    return str; 
} 
7

Ваш мостовой литой не передает право собственности, таким образом увеличивается количество удержаний. Вместо этого используйте __bridge_transfer.

+0

спасибо. работает для меня +1 для вас – Amith

3

Для IOS 6 и более позднего использования:

NSString *guid = [[NSUUID new] UUIDString]; 
NSLog(@"guid '%@'", guid); 

NSLog выход:

справ 'C2635D23-557B-42C9-BE90-6E6001CC09F1'

Смежные вопросы