2016. 10. 24. 16:16ㆍmobile/ios
ios도 모르고 하이브리드 앱 개발하기 [ 27 UIWebView 캐시 삭제하기 ]
UIWebView 로 개발하다보니 캐시문제가 생겼다.
서버에서 웹페이지를 수정 한 후 앱에서 실행했을 때 예전 화면이 그대로 나온다.
검색해 보니 다음 소스를 가장 많이 사용하고 있었다.
모든 캐시를 초기화 한다고 했다.
1 |
[[NSURLCache sharedURLCache] removeAllCachedResponses]; |
cs |
저 소스를
AppDelegate.m > didFinishLaunchingWithOptions 에도 붙혀넣어 보고
ViewController.m > viewDidLoad 에도 붙혀넣어 보았다.
근데 이거 테스트 어떻게 해야하나 ???
Android 같은 경우는 앱 상세정보에 캐시 정보가 있어서 캐시가 삭제 되는게 눈으로 확인이 된다.
근데 IPhone 은 어디서 확인하지 ?
찾다 보니 Android와 비슷한 형태를 띄고있는 설정화면을 발견할 수 있었다.
설정 > 일반 > 사용내용 > 저장공간 (아이폰 버전마다 메뉴명이 다를 수 있어요)
위 경로로 가보면 앱들의 도큐멘트 및 데이터라고 해서 앱 정보와 사용중인 용량이 표시가 되고 있었다.
이 용량이 캐시를 나타내고 있는 것인지는 모르겠다.
하지만 앱을 몇번이고 실행시켜도 용량이 늘어나기만 하지 줄어들지 않았다.
여기에 표시되는 정보가 캐시랑 관련이 있는 것일까 ?
왠만큼 검색해 보았지만 찾지 못했다.
그래서 직접 캐시 폴더를 삭제해보았다.
AppDelegate.m > didFinishLaunchingWithOptions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 |
NSString *LibraryDir = [NSString stringWithString:[NSHomeDirectory() stringByAppendingPathComponent:@"Library"]];
NSString *Library_CachesDir = [NSString stringWithString:[LibraryDir stringByAppendingPathComponent:@"Caches"]];
NSFileManager *fm = [NSFileManager defaultManager];
NSArray *list = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:Library_CachesDir error:nil];
int fileCount = [list count];
if (fileCount!=0)
{
for (NSString *path in [fm contentsOfDirectoryAtPath:Library_CachesDir error:nil])
{
[fm removeItemAtPath:[Library_CachesDir stringByAppendingPathComponent:path] error:nil];
}
}
|
cs |
1# : 라이브러리 폴더 경로
3# : 라이브러리 > 캐시 폴더
7# : 캐시폴더 내부 파일 리스트
15# : 캐시폴더의 내부 파일 삭제
실행할때마다 도큐멘트 및 데이터 용량이 초기화 되는 것을 확인할 수 있었다.
이 방법이 맞는 방법인지 너무 궁금하다...
* 경고 IOS에 무지한 상태에서 구글링만으로 앱 개발 및 포스팅이 진행됨 누구나 따라할 수 있겠지만 결코 완벽한 정답이 아닐 수 있음 아주 주관적인 입장에서의 포스팅임 |