Tag: 不足

核心数据与iCloud导致低内存警告和崩溃,内存使用量不断增长

我正在开发一个小型的业务应用程序,并且遇到了一个奇怪的内存问题,这个问题只有在使用Core Data和iCloud的时候才会出现。 如果我切换应用程序使用本地存储,随着时间的推移内存使用情况就好(通常17-18Mb)。 当我使用iCloud的应用程序,应用程序不断地使用越来越多的内存(每秒添加大约4-5Mb),直到它崩溃。 我已经做了一些与仪器分析,但无法弄清楚为什么会发生这种情况。 有没有人有任何想法如何开始寻找解决scheme? 下面是一个屏幕截图,显示了应用程序使用了多less内存,以及如何增长是线性的。 截图后,该应用程序崩溃了几秒钟。 以下是来自Core Data堆栈设置的一些代码。 NSString *iCloudEnabledAppID = @"iCloudData"; NSString *dataFileName = @"Moviedo.sqlite"; NSString *iCloudDataDirectoryName = @"Data.nosync"; NSString *iCloudLogsDirectoryName = @"Logs"; NSFileManager *fileManager = [NSFileManager defaultManager]; NSURL *iCloud = [fileManager URLForUbiquityContainerIdentifier:nil]; NSPersistentStoreCoordinator *psc = self.managedObjectContext.persistentStoreCoordinator; NSString *iCloudData = [[[iCloud path] stringByAppendingPathComponent:iCloudDataDirectoryName] stringByAppendingPathComponent:dataFileName]; NSURL *iCloudLogsPath = [NSURL fileURLWithPath:[[iCloud path] stringByAppendingPathComponent:iCloudLogsDirectoryName]]; NSURL […]

iOS下载和parsing大的JSON响应导致CFData(存储)泄漏

用户第一次打开我的应用程序,我需要下载大量的数据。 我以JSONforms从服务器获取所有这些数据。 根据用户的不同,这些JSON文件可以在10kb到30mb的范围内,其中有10个以上。 当JSON不超过500条logging时,我没有任何问题,但是正如我所说的,有些logging超过了10,000条,最多可以达到30MB。 当下载较大的JSON时,我的应用程序会分配大量的内存,直到我最终得到内存警告,应用程序崩溃。 看来CFData必须是我在didReceiveData中构build的NSMutableData。 当我下载一个JSON时,CFData(store)就会上升 – 当我开始parsing时,它停止上升。 在继续下载和parsing下一个JSON之前,如何清除这些数据? 如下所示,内存中有200mb的CFData(存储): – 挖入CFData并不能帮助我: 这里是我创build操作来获取这些各种JSON的代码 – – (void)checkForUpdates { if(!_globals) _globals = [MySingleton sharedInstance]; MyAFHTTPClient* client = [MyAFHTTPClient sharedClient]; NSString* path = [NSString stringWithFormat:@"cache?deviceUID=%@&token=%@",[_globals getMacAddress], [_globals getToken]]; NSURLRequest* request = [client requestWithMethod:@"GET" path:path parameters:nil]; _currentEnvironment = [_globals getActiveEnvironment]; if(!_currentEnvironment.didDownloadDataValue) [self setupAndShowHUDinView:self.view withText:@"Checking for updates…"]; AFJSONRequestOperation* operation […]