2014-11-05 1 views
-1

이제 캐시를 NSUserDefaults에 저장합니다. 이전과 마찬가지로 작은 배열 인 NSUserDefaults을 사용했습니다. 이제 큰 배열을 저장할 때 NSUserDefaults 응용 프로그램이 고정됩니다. iOS 용 캐시 배열의 대안은 무엇입니까?대체 NSUserDedaults. Xcode. iOS

업데이트 : 30-60 HTML 파일을 배열에 저장하고 싶습니다. 그리고 배열 캐시. 배열을 NSUserDefaults에 저장합니다. 내가 사용하는 것이 더 낫다. 데이터베이스? nscache? 데이터베이스라면 뭐라 구요?

+0

NSUserDefaults는 큰 데이터가있는 경우 작은 데이터를 캐시하는 데 사용되며 데이터베이스를 통과하는 것이 좋습니다 – Indrajeet

+0

캐시 할 데이터의 양에 따라 goto는 일반적으로 응용 프로그램의 "오프라인"버전을 제공하기위한 코어 데이터입니다. 핵심 데이터는 작업을 수행 할만한 가치가 없습니다. – DBoyer

답변

1

당신은 있는 NSDictionary으로있는 NSString를 HTML 데이터를 작성하고 문서 디렉토리.plist 파일에 저장할 수 있습니다. 이 방법을 사용하여 원하는대로 데이터를 편집, 추가 및 삭제할 수 있습니다.

+0

예를 들려 줄 수 있습니까? – runia

+0

또 다른 [질문에 대답] (http://stackoverflow.com/a/26401334/3332367)입니다. 좀 더보고 싶을 수도 있습니다. –

+0

고마워요! 나는 볼 것이다. – runia

1

캐싱을 원하는 경우 NSCache와 iOS를 사용하여 메모리를 관리 할 수 ​​있습니다. 그러나 데이터의 가용성을 항상 보장하지는 않습니다 .iOS는 메모리 경고로 인해 데이터를 제거하고 메모리를 확보 할 수 있습니다. 데이터 크기가 더 큰 경우 RAM에 직접 저장하는 대신 데이터를 문서 디렉토리에 저장해야합니다 (객체에 저장하면 RAM 메모리 사용). 데이터를 파일로 저장하거나 plist를 사용하십시오.

+0

NSCache는 나를 도왔습니다! 고맙습니다! 그러나 NSUserDefaults와 NSCache의 차이점은 무엇인지 아직 이해할 수 없습니까? NSUserDefaults가 NSCache를 esit하면 왜 필요합니까? – runia

+0

메모리 경고가 수신되면 OS는 NSCache의 데이터를 제거하지만 NSUserDefault는 삭제하지 않습니다. 따라서 NSCache를 사용하기 전에 NSCache의 개체 존재 여부를 확인해야합니다. –

+0

큰 배열을 작성하기 때문에 NSCache가 앱을 고정합니다. – runia