Iphone 存储在设置用户名和设置密码值中的对象可能泄漏

Iphone 存储在设置用户名和设置密码值中的对象可能泄漏,iphone,Iphone,我正在分析我的应用程序,并面临存储在设置用户名和设置密码值中的对象的潜在泄漏。我的代码是给定的 -(void) checkRememberPassword{ CFStringRef userNameKey = CFSTR("user_id_preferences"); CFStringRef settingUserName = (CFStringRef)CFPreferencesCopyAppValue(userNameKey, kCFPreferencesCur

我正在分析我的应用程序,并面临存储在设置用户名和设置密码值中的对象的潜在泄漏。我的代码是给定的

-(void) checkRememberPassword{
        CFStringRef userNameKey = CFSTR("user_id_preferences");
        CFStringRef settingUserName = (CFStringRef)CFPreferencesCopyAppValue(userNameKey, kCFPreferencesCurrentApplication);
        CFStringRef passwordKey = CFSTR("password_preferences");
        CFStringRef settingPasswordValue = (CFStringRef)CFPreferencesCopyAppValue(passwordKey, kCFPreferencesCurrentApplication);
        NSString *tempString = (__bridge NSString *)settingPasswordValue;
        NSString *tempString1 = (__bridge NSString *)settingUserName;
        if(([tempString1 length] != 0) || ([tempString length] !=0)){
            txtUserName.text = (__bridge NSString *)settingUserName;
            txtPassword.text = (__bridge NSString *)settingPasswordValue;
            [checkBoxButton setImage:[UIImage imageNamed:@"checkbox_full.png"] forState:UIControlStateNormal];
            flagForRemPassword = YES;

        }
    }

由CFasPyraseCopyAppEnter返回的字符串遵循Core Foundation中的CREATE规则(),您需要在完成时调用CFrRelp。ARC不会为您这样做

使用
CfBrigingRelease
将对象的所有权转移到ARC,而不是简单的C样式转换:

NSString *tempString = (NSString*)CFBridgingRelease(settingPasswordValue);