我正在开发一个社交网络,它几乎已经完成但存在内存问题。在登录页面中,内存使用量是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];
}
答案 0 :(得分:0)
如果你在这个控制器中有一些代表将它们设置为nil,你需要解除这个控制器或弹出如果是导航控制器,这可以帮助。
答案 1 :(得分:0)
检查是否已开始调用所有控制器的dealloc。 如果您使用过任何单件,请确保在注销时也清理它。 此外,如果您正在使用任何图像缓存库以防万一,也清除其缓存。