我正在开发一个内容显示应用程序,其中有一个表格视图和一个与表格中每一行相对应的详细视图。
有12个类别可以加载内容。
我已经完成了应用程序,它运行正常。现在我需要管理缓存的内存消耗,因为我在运行时收到警告。我正在使用AFNetowking lib进行缓存。
应用程序的运行没有问题。我只需要做一些内存管理并应用代码。
我正在尝试为每个类别分配一些特定的内存和磁盘空间。
以下是我用来为每个类别分配ram和磁盘大小的代码。
NSURLCache *sharedCache = [[NSURLCache alloc] initWithMemoryCapacity:15 * 512 * 1024
diskCapacity:10 * 1024 * 1024
diskPath:nil];
[NSURLCache setSharedURLCache:sharedCache];
xcode版本:6.1
taget ios版本:6.0
app:universal
答案 0 :(得分:-1)
我认为建议不要设置缓存的大小。系统应该注意这一点。
我通常会使用常见的NSCache,只是根据URL存储数据包。然后将数据转换回任何图像/ xml /文本,无论我期待什么。
// This should reference an NSCache instance
_contentCache = [[NSCache alloc] init];
// create a key for the request.
cacheKey = [NSString stringWithFormat:@"%@|%@",uri,body];
NSData *cacheData = [_contentCache objectForKey:cacheKey];
// if its in the cache, just return it.
if (cacheData) {
return cacheData;
}
// Request the data here and return it.
_contentCache在AppDelegate中定义。这样我就可以从应用程序中轻松引用它。
- (id) init {
_appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
_contentCache = [_appDelegate contentCache];
return self;
}
我已将课程发布到GitHub。它不完整,但可用。