问题标签 [nscache]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
54 浏览

python - 我应该从服务器检索多少个对象,多少个对象可以存储在 NSCache 中?

我的服务最多返回 500 个对象,我注意到当数据量超过 60 个对象时,我的 iphone 应用程序崩溃了。为了解决这个问题,我正在运行一个只返回前 40 个结果的查询,但这比只返回整个数据要慢

  1. 最佳实践是什么?如何检索更多对象?
  2. iphone中分配给应用程序的最大内存量是多少,有没有办法扩展它?
  3. 我应该从服务器检索多少对象
  4. NSCache 中可以存储多少?
0 投票
0 回答
30 浏览

iphone - 当应用程序进入后台时,Pngs 被清除

我正在使用 AFNetworking 从 Url 保存图像,它使用 NSCache 缓存来自请求的 url 的图像。当应用程序进入后台并且手机被锁定时,png 被清除但 jpeg 没有被清除。我读到 NSCache 中有一些自动过期策略。

请帮我解决这个奇怪的问题。

0 投票
1 回答
1160 浏览

ios - SDWebImage 是否同时使用内存缓存和磁盘缓存(在需要时)?如果没有,我应该如何处理?

我的应用程序处理大量图像下载,因此我希望它对用户来说尽可能快。优选地,当图像下载时,它不应该再次下载。

我最初的策略是将所有内容保存UIImages在一个 中NSArray,但最终这会消耗大量内存/RAM。

然后我想到了使用NSCache,如果内存使用率过高,它会自动删除项目。我的问题是,一旦它删除了该项目,下次我需要它时我必须重新下载该图像。

似乎我最好的解决方案是(如果我完全错过了更好的东西,请告诉我)将它们保存在NSCache样式解决方案中,并且在NSCache删除项目时将其保存到磁盘。因此,下次需要时不需要重新下载,即使缓存将其删除,从磁盘获取它仍然比从服务器获取它更快。

我很好奇像SDWebImage这样的库——我知道它使用缓存,所以图像不会被多次下载——使用这样的解决方案,或者它们更像NSCache是当内存使用率过高时图像会消失的地方,以及需要重新下载。(只是,一旦应用程序完成执行,我不希望它再留在磁盘上。)

我看这完全错了吗?我应该做一些完全不同的事情吗?

0 投票
2 回答
904 浏览

ios - 在 tableviewcontroller 中缓存图像

我想将图像保存到 TableViewcontroller 的缓存中。我写了下面的代码,但是 cacheImage 总是为零。

我按照乔的建议使用了以下代码,但仍然 cell.imageview.image 始终为零。

0 投票
1 回答
375 浏览

objective-c - 如何在表格视图中滚动时阻止图像重新加载

我创建了一个 UITableView,并且有一个我需要为其设置图像属性的 URL 数组。我已经设法通过使用 dispatch_async 检索图像来改进表格的滚动功能,并将它们存储在我声明为强属性的 NSCache 中,但是现在当我滚动表格时,我可以看到来自出现的单元格中的前几行,然后当滚动停止时,图像会更新到它们应有的状态,但有时它们也会沿途循环浏览其他一些图像。这是我在 cellForRowAtIndexPathMethod 中的代码,有人知道为什么会这样吗?

0 投票
1 回答
1244 浏览

generics - Swift:泛型和向下转换为 AnyObject

我有以下情况:(只需将其复制到操场上)

这会导致错误“找不到 setObject 的重载 ...”

好吧,我知道问题是 addUID 中 aObj 的类型,编译器不清楚。

途中会说

但在这种情况下,a 可以完全跳过通用主题。我尝试将 aObj 向下转换为 AnyObject 或 NSObject 之类的东西,但它不起作用。

有任何想法吗?

我会很高兴有一个通用版本的缓存:)

更新:

解决方案是在协议上添加@objc 属性,因此该协议仅可用于类,但这导致协议的一般限制。我只是喜欢类 manageUID 中的本地解决方案。

0 投票
0 回答
1079 浏览

ios - NSCache with NSDiscardableContent or NSMutableDictionary?

Currently, I'm using NSCache to store data for my app. I can always retrieve that data again from the server, so it is not a problem if I eventually lose the data, that's why I'm using NSCache.

The problem is that every time my app enters background NSCache evicts data. I don't want it to evict data unless it is really necessary for memory improvement or if the object reaches its limits.

I don't want to switch to NSDictionary and get my app killed on the background if it uses too much memory. I could subclass NSDictionary and make it clear itself when needed or when getting memory warnings, but I guess this would be a lot of work.

I read around and found a few suggestions to use NSCache with NSDiscardableContent protocol, but didn't really found any sample code of implementation. I'm not even sure if this would be the best approach to my case.

Any suggestions?

UPDATE:

I found this code in github which gives me the expected result. Therefore, it doesn't use the NSDiscardableContent and I cannot identify what is going on that it doesn't remove objects in case app enters background state. I guess his method - (void)cleanUp is called every time NSCache will remove objects and there he only proceeds if object has reached its limit or received memory warning.

Anyway, I'm not a fan of using third party codes, so if anyone can help me mimic this behavior would be a great help.

0 投票
1 回答
290 浏览

ios - 使用 NSOperatoinQueue 在 UIScrollView 中加载远程服务器图像


我想在 with 中加载一些“图像”(在远程服务器中UIScrollViewNSOperatoinQueue。因为如果我使用 normal 加载它NSURLNSData或者NSMutableURLRequest加载所有图像需要太多时间。之后,我将这些图像显示在UIButton. 这是我的代码:

谁能告诉我上面的代码有什么问题?从远程服务器解析或检索数据没有问题。我检查它NSLog。我认为NSOperationQueue有一些问题,我无法正确管理。提前致谢。如果您需要更多信息,我将在此处附上。祝你今天过得愉快。

0 投票
1 回答
297 浏览

ios - NSCache UIImage 数据从 oneViewController 传递到 anotherViewController

让我先解释一下场景。我有一个UIScrollViewand 在里面,添加一些UIButtonas subView。在这些按钮中,我正在加载一些图像(来自远程服务器)。我加载所有图像NSMutableURLRequest并保存在NSCache. 由于加载需要很长时间,这就是我想使用 this 的原因NSCache,因此在其他情况ViewController下,我不必从远程服务器再次加载它们。所以,我NSCache通过ViewController. Segue不过,我不确定是否有可能NSCache?请让我知道。我在下面给你我的代码,这样你就可以看看它。

提前非常感谢。祝你今天过得愉快。

MainViewController.h


MainViewController.m



SecondViewController.h


SecondViewController.m

补充:
在我再次SecondViewController创造时,我没有得到任何价值。我想我在这里遗漏了一些东西。或不遵循适当的方式。NSCache *imageCache;NSlog

0 投票
2 回答
1093 浏览

ios - 如何检查 NSCache 实例值集与否

我有一个实例NSCache,例如:NSCache *imageCache;它基本上用于保存一些具有不同的远程“图像”值"@keys"。I alloc&init NSCache在开头的 Global 类中设置if else条件,如下所示:

#import是所有的“全局类” ViewControllers,这样我就不必每次都解析图像。但问题是当我去其他地方时,ViewControllers似乎每次都如此。因为将图像加载为. 我认为条件没有完美运行,或者它不是检查设置与否的适当方法。谁能告诉我它有什么问题?还有一件事, The是从全局变量中使用的。 提前致谢。 祝你有美好的一天。NSCache allocinit1stVCif elseNSCacheimageCache

添加:

这是我将UIButtonsin加载UIScrollViewsubView. 这是UIViewClass我在我的“EveryViewController”中添加的一个,subView只要看看就if (cachedImage)行了。它工作正常。但是,当我想检查NSCache(iADImageCache) 是否设置时,它显示它没有设置。但是应该设置哪个。在这种情况下,我怎样才能iADImageCache用不同的@"Key"名字检查所有几个?再次感谢。