HJCacheを使用して、私のアプリのウェブカメラから画像を表示しようとしています。
ウェブカメラは5分ごとに画像を更新します。
私は、ユーザーが新しいイメージ(利用可能な場合)を見るためにそれをクリックできるように、リフレッシュボタンを持っていたいと思います。これまで
マイコード:HJCacheを使用してイメージを更新する方法は?
-(void)viewDidLoad {
// init HJObjManager
objMan = [[HJObjManager alloc] initWithLoadingBufferSize:6 memCacheSize:20];
// refresh button
UIBarButtonItem *buttonRefresh = [[UIBarButtonItem alloc]
initWithBarButtonSystemItem:UIBarButtonSystemItemRefresh
target:self
action:@selector(refreshPhoto:)];
self.navigationItem.rightBarButtonItem = buttonRefresh;
[buttonRefresh release];
NSURL *url = [NSURL URLWithString: @"http://webcamurl"];
img1.url = url;
[self.objMan manage:img1];
}
-(IBAction) refreshPhoto: (id) sender {
// ?
}
はあなたが私にrefreshPhotoを実装する方法についてのヒントを与えるだろうか?
:enderは私にemptyCacheを指摘しました。私はOK、それを理解していれば、それは今私のコードので、HJMOFileCacheによって使用されるべきである:それはしかし動作しません
-(void)viewDidLoad {
NSString *documentsDirectory;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
documentsDirectory = [paths objectAtIndex:0];
documentsDirectory = [documentsDirectory stringByAppendingPathComponent:@"imageCache/"];
objMan = [[HJObjManager alloc] initWithLoadingBufferSize:6 memCacheSize:20];
HJMOFileCache* fileCache = [[[HJMOFileCache alloc] initWithRootPath:documentsDirectory] autorelease];
fileCache.fileCountLimit = 100;
fileCache.fileAgeLimit = 300; // 5 min
objMan.fileCache = fileCache;
// refresh button
UIBarButtonItem *buttonRefresh = [[UIBarButtonItem alloc]
initWithBarButtonSystemItem:UIBarButtonSystemItemRefresh
target:self
action:@selector(refreshPhoto:)];
self.navigationItem.rightBarButtonItem = buttonRefresh;
[buttonRefresh release];
NSURL *url = [NSURL URLWithString: @"http://webcamurl"];
img1.url = url;
[self.objMan manage:img1];
[super viewDidLoad];
}
-(IBAction) refreshPhoto: (id) sender {
[self.objMan.fileCache emptyCache];
[self.objMan manage:img1];
}
私は何も起こりません更新ボタンをクリックすると、画像が更新されません。
:キャッシュファイルが削除されていない可能性があります(私が正しく理解していれば)、実際にはそうなっているようです。前とEMPTYCACHE後のNSLogから
:
2011-09-09 16:57:33.842 Ready dir before emptyCache: (
"http:__www.meteogallipoli.it_cam_cam1.jpg"
)
2011-09-09 16:57:33.845 Loading dir before emptyCache: (
)
2011-09-09 16:57:33.856 Ready dir after emptyCache: (
)
2011-09-09 16:57:33.859 Loading dir after emptyCache: (
)
「準備完了」と「ロード」objMan店はすでにダウンロードしたファイルは、それぞれ、ダウンロードされるディレクトリがあります。
問題は、objManを再度イメージ管理することにあるのでしょうか?
---マークの答えは完全ではなかった、彼は私が彼を送った電子メールに返信するために非常に親切だった、完全な答えは: "私は両方のファイルキャッシュとメモリキャッシュファイルキャッシュを空にすると、メモリキャッシュに静止画像がありますか?メモリキャッシュのサイズが0のオブジェクトマネージャをインスタンス化してみてください。または、キャッシュを空にする場合は、オブジェクトマネージャ自体を再インスタンス化します。私はおそらく、オブジェクトマネージャ自体にemptyCacheメソッドを持っているはずです。 "そして、はい、0メモリサイズでインスタンス化すると問題は解決しました。 –