注销按钮后IOS内存数据不会被删除

时间:2014-04-04 08:49:00

标签: ios xcode memory

我正在开发一个社交网络,它几乎已经完成但存在内存问题。在登录页面中,内存使用量是35 MB,我想在我记录时备份这个内存。

当我按下注销按钮时,我希望减少使用内存。例如,在登录时,内存在XCode屏幕中的内存为79,6 mb,但我在代码下面应用内存使用量为75,5 mb。当我重新登录时,内存从75增加到75 + 40(115mb)。我怎么处理这个?

我用于注销的代码:

-(void)logout{
    //these are deleting 4 mb from memory
    for(UIView *view in self.c_ProfilePage.view.subviews){
                   [view removeFromSuperview];
    }

    for(UIView *view in self.c_MainPage.view.subviews){
                   [view removeFromSuperview];
    }

    self.c_MainPage.checkinsArray = nil;
    self.c_MainPage.checkinsTable = nil;
    self.c_MainPage.Badge = nil;
    self.c_MainPage.button_checkinPage = nil;
    self.c_MainPage.button_profilePage = nil;
    self.c_MainPage.bufferData = nil;

    self.c_ProfilePage.checkinsArray = nil;
    self.c_ProfilePage.checkinsTable = nil;
    self.c_ProfilePage.m_SubView = nil;
    self.c_ProfilePage.AddFriendButton = nil;
    self.c_ProfilePage.refreshControl = nil;
    self.c_ProfilePage.navController = nil;
    self.c_ProfilePage.window = nil;
    self.c_ProfilePage.e_profilepicture = nil;
    self.c_ProfilePage.view_profilepicture = nil;
    self.c_ProfilePage.label_name = nil;
    self.c_ProfilePage.label_surname = nil;
    self.c_ProfilePage.label_username = nil;
    self.c_ProfilePage.label_tweetCount = nil;
    self.c_ProfilePage.label_friendCount = nil;
    self.c_ProfilePage.bufferFriendList = nil;
    self.c_ProfilePage.rightPanel = nil;

    [self.c_publicFunctions logoutRequest];
    self.c_MainPage = nil;
    self.c_ProfilePage = nil;
    self.c_ChatMenu = nil;
    self.database_sql = nil;
    self.c_publicFunctions = nil;
    self.c_publicFunctions = [publicFunctions alloc];
    self.c_Map = nil;
    self.CUser = nil;
    _CUser = [[Account  alloc]init];
    self.window = nil;
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    self.c_MainPageController = nil;
     self.c_MainPage =[[mainPage alloc]init];
    [self.c_MainPageController setNavigationBarHidden:NO animated:NO];
    self.c_MainPageController = [[mainPageController alloc]initWithRootViewController:self.c_MainPage];
    [self.c_MainPageController.navigationBar setBackgroundImage:[UIImage imageNamed:@"navbar_background.png"] forBarMetrics:UIBarMetricsDefault];

    [self.memory_default removeObjectForKey:@"AutoLogin"];
    [self.memory_default removeObjectForKey:@"username"];
    [self.memory_default removeObjectForKey:@"password"];
    [self.memory_default setObject:@"0" forKey:@"AutoLogin"];
    [self.window makeKeyAndVisible];
    [self.window setRootViewController:self.c_LoginPage];
}

2 个答案:

答案 0 :(得分:0)

如果你在这个控制器中有一些代表将它们设置为nil,你需要解除这个控制器或弹出如果是导航控制器,这可以帮助。

答案 1 :(得分:0)

检查是否已开始调用所有控制器的dealloc。 如果您使用过任何单件,请确保在注销时也清理它。 此外,如果您正在使用任何图像缓存库以防万一,也清除其缓存。