问题标签 [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 回答
730 浏览

ios - 实现 nscache 时出错

我有这个错误

这是我遇到这种错误的代码。不知道是什么问题。

0 投票
1 回答
726 浏览

ios - NSCache 是否跨 ViewControllers 持续存在?

这是我第一次使用NSCache,我知道它不会在应用程序午餐中持续存在。

但是它会持续存在ViewControllers吗?...意思是...如果我将其设置为cache object打开ViewController A然后移动到ViewController B我仍然可以访问它吗?

我的问题与我在代码中遇到的问题有关。我在ViewController B并且我设置了缓存对象。然后移动到ViewController B并尝试检索该对象,但从未找到。

这是正常的还是我的代码有问题???我的视图非常便宜,所以我看不出它为什么会丢弃缓存对象

ViewController A(使用缓存)

ViewController B(缓存设置器)

0 投票
2 回答
3094 浏览

ios - NSCache 什么时候释放缓存对象?

我已经实现了一个列表,其中异步加载了许多大图像。我正在使用一个实例NSCache来存储这些UIImage文件。当我向下滚动时,我加载了越来越多的图像。我进行了设置并分析了应用程序的分配情况,我注意到缓存似乎没有释放任何内存。“Live Bytes”字段已达到 165 MB 并且还在增加。缓存开始释放内存的限制是多少?还是我必须自己设置?

0 投票
2 回答
838 浏览

ios - iOS 中的最佳图像缓存策略

在我的应用程序中,我有一个UITableView显示相当大的图像并加载一个设计适中的Xib文件来显示它。每个图像的大小约为 700KB 到 1MB。流程几乎永无止境,随着我们向下滚动,它会加载越来越多。所以你可以想象我遇到了内存问题。

我试过使用SDImageCacheand NSCache。前者使用磁盘内存来缓存图像。在这两种情况下,缓存都不会自动清除图像。当我收到Received memory warning提示时,我必须手动清除它们。每次我清除这些缓存时,释放的内存似乎每次都更少。

现在我很困惑对于这么长的图像列表我必须使用哪种缓存策略。我可能在某处有泄漏吗?当我分析应用程序时,它们当然没有出现。

PS:我正在从网络加载图像。只是要清楚。

0 投票
2 回答
9200 浏览

iphone - 在可重用的表格单元格中使用 NSCache 和 dispatch_async 的正确方法是什么?

我一直在寻找一种明确的方法来做到这一点,但还没有找到任何可以举例说明并很好解释的地方。我希望你能帮助我。

这是我正在使用的代码:

缓存为我返回 nil。

0 投票
2 回答
7604 浏览

objective-c - 达到内存限制时 NSCache 崩溃(仅在 iOS 7 上)

我们在我们的应用程序中为 UIImages 使用 NSCache。这适用于小于 7 的 iOS 版本。当出现内存警告时,NSCache 会按预期释放对象。然而,在 iOS 7 上,我们的应用程序在第一次内存警告后不久就崩溃了。因此,似乎使用 NSCache 存储的对象永远不会被释放,但缓存会不断增长,直到应用程序崩溃。用仪器分析证实了这种怀疑。

其他人是否遇到过此问题,您是否找到了解决方法或已跟踪错误?

看起来那些家伙有同样的问题:http ://www.photosmithapp.com/index.php/2013/10/photosmith-3-0-2-photo-caching-and-ios-7/

我创建了一个小示例应用程序来说明这个问题。当一个按钮被按下时,该方法-(IBAction)fillCache:(id)sender被调用。从那时起,-(void)addImageToCache:(id)sender每 100 毫秒调用一次计时器。在此方法中,会生成一个 UIImage 并将其写入缓存。

在装有 iOS 7.0.3 和 512 MB 内存的 iPad Mini 上,它在大约 350 次迭代后崩溃。

在装有 iOS 5 和 512 MB 内存的 iPad 2 上,它也会在某些时候崩溃,但至少要经过 3000 次迭代。Instruments 显示每次发生内存警告时 UIImage 实例的数量都会减少。这不是 iOS 7 的情况。

0 投票
0 回答
672 浏览

ios - 加密或保护应用程序文档中的缓存文件,仅由应用程序打开

我正在使用EGOCache缓存NSData然后重新读取NSDatainto NSDictionary,所以当我检查iPhone Simulator文件以查看数据是否受到保护时!!我发现我可以轻松打开它!那么我要问的是,有没有办法保护或加密这些(敏感数据)?

0 投票
3 回答
4117 浏览

ios - 当应用程序进入后台时,NSCache 总是驱逐图像数据

这可能是预期的行为,但 Apple 并未明确说明。

我正在使用NSCache为我的UICollectionView. 当我将应用程序置于后台并再次(立即)打开它时,我的所有图像都不再位于NSCache.

理想情况下,我希望最近加载的图像保持缓存状态,这样当用户重新打开应用程序时,他们就不必支付再次加载所有图像的费用。似乎NSCache应该允许不那么激进的缓存策略。

我只是想在这里发帖进行完整性检查,并确保我没有遗漏任何明显的东西。

否则,我将不得不实现自己的缓存,将最后 25 个加载的图像保存在NSMutableDictionary缓存中。

0 投票
3 回答
1825 浏览

ios - 在IOS中存储应用程序数据的正确位置

目前我正在将我的应用程序数据(媒体)保存到 CacheDirectory 即

/var/mobile/Applications/BEAFC76C-C450-4A3A-9765-A0385A9580F3/库/缓存

事情进展顺利。但最近我收到一个错误报告,应用程序数据已被删除。当我搜索它时,我得到了这个Apple Doc。据此,DocumentsDirectory 应该是存储用户/应用程序数据的理想场所。

将用户数据放在 /Documents/ 中。用户数据是您的应用程序无法重新创建的任何数据,例如用户文档和其他用户生成的内容。

并且不应该使用缓存来存储应用程序无法复制的用户数据。

将数据缓存文件放在 /Library/Caches 目录中。您应该放在此目录中的文件示例包括(但不限于)数据库缓存文件和可下载内容,例如杂志、报纸和地图应用程序使用的内容。您的应用程序应该能够优雅地处理系统删除缓存数据以释放磁盘空间的情况。

存放它的理想场所应该是什么。

编辑:

我有一个应用程序,允许用户在应用程序中存储视频和照片。为此,我使用了 CacheDirectory。但是我收到了数据(视频/照片)被删除的错误报告。我得出的结论是设备本身正在删除数据以提供空间。

其次我也想给iTunes分享功能。所以只有特定的文件必须存储在 DocumentsDirectory 中。有些文件永远不能公开,有些文件必须共享。什么应该是存储文件的理想方式。

0 投票
1 回答
919 浏览

multithreading - 如何将 NSCache 与 CoreData 一起使用

我开发了一个项目,用户在画布上绘制图像,我使用 CoreData 将其存储在文件中,我有一对多的关系,称为文件夹到文件。所以这里都是图片。我从文件中检索图像,根据我的表格单元格高度调整大小并将其显示在表格上。显示后,我想缓存图像。

我在文件夹单元格上也有一些标签,它们为我提供了一些关于我的文件的信息,我会即时更新这些信息。我还滑动单元格以将其标记为完成并将其移动到单元格的底部。

我还会根据用户查询的方式在不同的视图中显示相同的文件图像。

我想知道最好的方法,我通过网络阅读,它们有很多方法,GCD,NSOperationQueues 等等。

哪种方法最适合我。

我想展示一些代码

所以这里发生的是 configureCellWithNote 需要很多时间,因为它正在调整图像大小。请帮助我决定如何解决这个性能问题。

问候拉吉特