相关疑难解决方法(0)

NSCache不会驱逐数据

NSCache是一种很少使用的工具,实际上看起来非常有用.我创建了一个简单的实验,看看它是如何工作的,看起来它在低内存情况下不会自动驱逐数据(或者我做错了!)

- (void)viewDidLoad
{
    _testCache = [[NSCache alloc] init];

    // Allocate 600 MB of zeros and save to NSCache
    NSMutableData* largeData = [[NSMutableData alloc] init];
    [largeData setLength:1024 * 1024 * 600]; 
    [_testCache setObject:largeData forKey:@"original_Data"];
}

- (IBAction)buttonWasTapped:(id)sender {

    // Allocate & save to cache 300 MB each time the button is pressed
    NSMutableData* largeData = [[NSMutableData alloc] init];
    [largeData setLength:1024 * 1024 * 300]; 
    static int count = 2;
    NSString* key = [NSString stringWithFormat:@"test_data_%d", count++];
    [_testCache setObject:largeData forKey:key];

    NSMutableData* …
Run Code Online (Sandbox Code Playgroud)

iphone objective-c ios nscache

11
推荐指数
2
解决办法
8024
查看次数

在iOS中以编程方式清空缓存

有没有巧合的人知道如何清空我正在开发的iOS应用程序的缓存内存,在它进入后台的那一刻(applicationDidEnterBackground)?我已经调查了NSCache,但我仍然无法理解如何检索缓存基本上删除/释放它?

caching ios nscache

6
推荐指数
1
解决办法
8474
查看次数

NSTableView无限滚动或分页

关于如何确定用户是否已滚动到 NSTableView 的末尾, 谢谢乔希。

有没有办法使用这种机制来实现提供某种无限滚动或分页的 NSTableView。

这个想法是告诉 NSTableView 加载一定数量的记录,比如一次加载 1k 条记录,然后当用户滚动到接近末尾时再拉取另外 1k 条记录,并且可能会忘记前 1k 条记录。

该模式在 Web 应用程序和 java 中得到了很好的定义/使用。最初仅加载可见的行数,当用户上下滚动表格时,其余的行将被异步拉取。

我对一些 obj-c 代码或有关如何编码的技巧感兴趣。我知道如何过滤/限制进入表视图的记录数量,但让我们暂时忽略它。

谢谢。

cocoa objective-c nstableview nsscroller

5
推荐指数
1
解决办法
1233
查看次数

标签 统计

ios ×2

nscache ×2

objective-c ×2

caching ×1

cocoa ×1

iphone ×1

nsscroller ×1

nstableview ×1