【问题标题】:Showing last loaded views - like facebook显示最后加载的视图 - 像 facebook
【发布时间】:2013-12-23 14:51:14
【问题描述】:

在许多 iOS 应用程序中,例如 facebbok/instagram - 当我们新打开应用程序时(在强制退出后),即使没有互联网,它们也会在每个页面中显示最后加载的视图。 这怎么可能 ? 将这么多图像和其他数据保存到 SQLite 不是我知道的实用解决方案? 但我找不到在我的应用中做同样事情的想法。

请指教。

【问题讨论】:

    标签: ios objective-c view iphone


    【解决方案1】:

    我曾经创建了一个具有这些功能的应用程序。该应用程序有一个可以提供图像的中心点。当被要求提供图像时,它会首先在缓存目录中查找。如果图像不存在,它将提供一个临时图像。并获取图像。 我的应用显示推文,twitter api 的 json 也被缓存,但在核心数据存储中。

    所以我的建议是创建几个从 url 获取数据的中心点。只要有可能,它们就会提供缓存版本。图像缓存具有要缓存的图像的上限。当需要存储 N 个以上的图像时,将删除最少使用的图像。

    图像缓存的工作方式如下:

    @interface WSImageCache : NSObject {
    @private
        NSMutableArray * activeConnections;
        NSUInteger numberOfCachedImages;
        NSMutableArray * currentlyFetchingURLS;
    }
    
    + (WSImageCache *)sharedImageCache;
    
    - (void) cacheImagesFor:(Tweet *) tweet;
    - (BOOL) imageIsCached:(NSString *) url;
    - (BOOL) completeTweetIsCached:(Tweet*) tweet;
    
    - (NSData *) fetchAvatarFor:(Tweet *) tweet;
    - (NSArray*) fetchImagesIn:(Tweet *) tweet;
    
    - (NSURL *) cachedImageForURLString: (NSString *) url;;
    @end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-15
      • 2019-02-04
      • 2013-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-29
      • 1970-01-01
      相关资源
      最近更新 更多