Tag: caching

caching图像和UICollectionView

我对Objective-C很新,所以希望这一切都合情合理。 我已经从服务器下载图像,并在collectionView cellForItemAtIndexPath:方法的图像视图中显示它们。 我面临的问题是图像看起来不是caching。 看起来每次单元格被重新使用时,服务器的相关图像将被重新下载。 在我的viewDidLoad方法我创build一个NSMutableDictionary: imageDictionary = [[NSMutableDictionary alloc]initWithCapacity:50.0]; 从阅读文档,看类似问题的答案,我认为这一点,加上下面的代码就足够了。 我已经在这一两天了,我知道有一些我失踪或一个概念,我不抓住。 #pragma mark – UICollectionView Data Source – (NSInteger)collectionView:(UICollectionView *)view numberOfItemsInSection:(NSInteger)section;{ NSLog(@"Begin retrieving photos"); return [self.photos count]; } -(NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView{ return 1; } – (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath;{ CollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"MY_CELL" forIndexPath:indexPath]; cell.imageView.image = nil; if (cell.imageView.image == nil) { dispatch_queue_t […]

iOS上的NSURLConnection不会尝试caching大于50KB的对象

尽pipe苹果的文档指出 ,iOS上的NSURLCache根本不做任何磁盘(闪存)caching。 您可以NSURLCache子类,以更改获取和存储操作的行为来使用磁盘(就像SDURLCache一样),但是由于以下严重的caching使用和实现限制, d期望: NSURLConnection甚至不会调用storeCachedResponse:forRequest:对于超过大约50KB( storeCachedResponse:forRequest:是storeCachedResponse:forRequest: 52428字节)的文件。 这使得NSURLCache我们的使用(200KB图像)毫无意义,因为它甚至不会进入caching。 因此,我们必须手动添加高于NSURLConnection的级别的caching。 即使手动调用NSURLCache的内置storeCachedResponse:forRequest:如果响应小于180KB,它只会将响应存储在内存中。 我通过手动调用storeCachedResponse来testing这个,并且看到currentMemoryUsage之前/之后的数据长度在大约180KB以上没有改变。 所以我们也必须编写自己的LRU内存caching。 有没有人注意到这些问题? 还是有什么我失踪? 仅供参考,我在模拟器和iPad 2上运行iOS 4.3。

UIImageViewcaching图像?

也许我会问同样的问题,其他人问(但它没有回应): 加快第一个UIImageViewanimation(强制caching图像) 但是,我的简短问题是: 我在资源中有60个图像,在时间间隔循环中,我要为图像设置animation,每次设置为UIImageView.image资源的第n个图像。 问题是: 第一个animation不好! 当我在同一个UIImageView中再次循环所有图像时,animation是完美的。 我们可以预先在UIImageViewcaching图像吗? 编辑:或者,也许我们可以做一些技巧,使animation顺利?

如何清除充满表情字符的字体caching?

我正在开发iPhone的键盘扩展。 有一个emoji屏幕与苹果自己的表情符号键盘相似,在UICollectionView中显示了大约800个表情符号字符。 当这个表情符号UIScrollView滚动内存使用增加,不下降。 我正在重新使用单元格,并且在显示800倍的单个表情符号字符进行testing时,在滚动过程中内存不会增加。 使用工具,我发现我的代码中没有内存泄漏,但似乎表情符号字形被caching,根据字体大小可能需要大约10-30MB的内存(研究表明它们实际上是PNG)。 键盘扩展可以使用less量内存,然后才能杀死。 有没有办法清除该字体caching? 编辑 添加代码示例以重现该问题: let data = Array("😄😊☺️😉😍😘😚😗😙😜😝😛😳😁😔😌😒😞😣😢😂😭😪😥😰😅😓😩😫😨😱😠😡😤😖😆😋😷😎😴😵😲😟😦😧😈👿😮😬😐😕😯😶😇😏😑👲👳👮👷💂👶👦👧👨👩👴👵👱👼👸😺😸😻😽😼🙀😿😹😾👹👺🙈🙉🙊💀👽💩🔥✨🌟💫💥💢💦💧💤💨👂👀👃👅👄👍👎👌👊✊✌️👋✋👐👆👇👉👈🙌🙏☝️👏💪🚶🏃💃👫👪👬👭💏💑👯🙆🙅💁🙋💆💇💅👰🙎🙍🙇🐶🐺🐱🐭🐹🐰🐸🐯🐨🐻🐷🐽🐮🐗🐵🐒🐴🐑🐘🐼🐧🐦🐤🐥🐣🐔🐍🐢🐛🐝🐜🐞🐌🐙🐚🐠🐟🐬🐳🐋🐄🐏🐀🐃🐅🐇🐉🐎🐐🐓🐕🐖🐁🐂🐲🐡🐊🐫🐪🐆🐈🐩🐾💐🌸🌷🍀🌹🌻🌺🍁🍃🍂🌿🌾🍄🌵🌴🌲🌳🌰🌱🌼🌐🌞🌝🌚🌑🌒🌓🌔🌕🌖🌗🌘🌜🌛🌙🌍🌎🌏🌋🌌🌠⭐️☀️⛅️☁️⚡️☔️❄️⛄️🌀🌁🌈🌊☕️🍵🍶🍼🍺🍻🍸🍹🍷🍴🍕🍔🍟🍗🍖🍝🍛🍤🍱🍣🍥🍙🍘🍚🍜🍲🍢🍡🍳🍞🍩🍮🍦🍨🍧🎂🍰🍪🍫🍬🍭🍯🍎🍏🍊🍋🍒🍇🍉🍓🍑🍈🍌🍐🍍🍠🍆🍅🌽🎍💝🎎🎒🎓🎏🎆🎇🎐🎑🎃👻🎅🎄🎁🎋🎉🎊🎈🎌🔮💛💙💜💚❤️💔💗💓💕💖💞💘💌💋💍💎👑👒👟👞👡👠👢👕👔👚👗🎽👖👘👙💼👜👝👛👓🎀🌂💄📚📖🔬🔭📰🎨🎬🎩🎪🎭🎤🎧🎼🎵🎶🎹🎻🎺🎷🎸👾🎮🃏🎴🀄️🎲🎯🏈🏀⚽️⚾️🎾🎱🏉🎳⛳️🚵🚴🏁🏇🏆🎿🏂🏊🏄🎣").map {String($0)} class CollectionViewTestController: UICollectionViewController { override func viewDidLoad() { collectionView?.registerClass(Cell.self, forCellWithReuseIdentifier: cellId) } override func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { return data.count } override func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell { let cell = collectionView.dequeueReusableCellWithReuseIdentifier(cellId, forIndexPath: indexPath) […]

如何从NSURLSessionTask禁用caching

在我的iOS应用程序中,我使用NSURLSessionTask将json数据下载到我的应用程序。 我发现,当我直接从浏览器调用url时,我得到一个最新的json,当它从应用程序中调用时,我得到一个老版本的json。 这是由于caching? 我怎么能告诉NSURLSessionTask不使用caching。 这是我使用的呼叫: NSURLSessionTask *task = [[NSURLSession sharedSession] dataTaskWithURL:url completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { 谢谢!

iOS:苹果是否禁用保存到主屏幕的网页应用的HTML5离线function?

我一直在做很多工作,让一些networking应用程序在iOS上使用HTML5清单离线工作。 我遇到了其他人遇到的典型问题,并解决了这些问题,一切似乎都正常工作 – 除了在我的iPhone 4上将networking应用程序保存到桌面的情况。 如果我这样做,然后启用飞行模式,当试图通过主屏幕访问应用程序时,我会得到以下警告:“您的应用程序名称无法打开,因为它没有连接到互联网。 通过Safari浏览器访问应用程序在离线状态下正常工作。 如果有人知道这是否是我的错误,甚至是一个工作的可能性很小,请告诉我。 即使下载新的“金融时报”networking应用程序(很好地完成了对localStorage的广泛支持),在从主屏幕离线访问时也会导致错误。 技术规格:使用iOS 4.3.3运行iPhone 4(但也见4.3.2中的问题)

删除UIWebView的内部caching

我在UIWebView显示一个Web应用程序,有时页面的内容会改变。 内容更改后,应用程序清除caching。 但是,当我去我以前访问过的页面UIWebView不发送HTTP GET请求,但从caching加载,即使我已经像这样禁用caching: [[NSURLCache sharedURLCache] removeAllCachedResponses]; [[NSURLCache sharedURLCache] setDiskCapacity:0]; [[NSURLCache sharedURLCache] setMemoryCapacity:0]; 最初我正在用cachePolicy cachePolicy:NSURLRequestReturnCacheDataElseLoad加载一个请求cachePolicy:NSURLRequestReturnCacheDataElseLoad 。 [self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:myURLString] cachePolicy:NSURLRequestReturnCacheDataElseLoad timeoutInterval:10.0]]; UIWebView有一些内部caching。 已经访问过的页面将从这个内部caching加载,而不是通过NSURLCache ,也没有请求发送。 有没有办法清除UIWebView的内部caching? 我甚至重新创buildUIWebView但caching仍然存在。

AFNetworking – 不要caching响应

我正在使用这段代码从服务器中获取一个简单的JSON提要: AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; manager.responseSerializer = [AFJSONResponseSerializer serializer]; [manager GET:kDataUrl parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) { NSLog(@"response: %@", responseObject); } failure:^(AFHTTPRequestOperation *operation, NSError *error) { NSLog(@"JSON DataError: %@", error); }]; 有用。 但是,在更改kDataUrl中的JSON文件并validation更改是在浏览器中进行后,当我再次运行该应用程序时,仍然得到以前的响应。 AFNetworking似乎caching了旧的回应。 我不想要这种行为。 我想下载当前的饲料。 是否有某种设置或参数需要设置为closurescaching?

IOS我如何asynchronous下载和caching图像和video在我的应用程序中使用

我有一个iphone应用程序,显示图像和video。 应用程序结构的大部分图像和video的方式将保持不变,偶尔添加一个。 我想就asynchronous下载和caching图像和video的最好和最简单的方法提出意见,以便即使在应用程序退出之后,它们仍然会持续存在。 另外,我只关心IOS 5及更高版本。 这是我迄今为止发现的一些信息,但是我还不清楚最好的方法是什么,如果caching将是持久的。 这篇关于asynchronous图像caching的文章 (旧2009) 这篇文章关于NSURLCache SDWebImage (看起来不错,但只适用于图像) AFDownloadRequestOperation 这似乎是一个很常见的用例,所以我真的在寻找最佳实践和对示例代码的引用。

什么时候NSCachesDirectory文件被删除?

在什么情况下,iOS NSCachesDirectory中的文件被删除? 显然,删除并重新安装一个应用程序。 应用程序升级怎么样? 低磁盘空间条件呢? 还要别的吗?