2
0

02-ContentView-10.swift 1000 B

12345678910111213141516171819202122232425262728293031323334
  1. @State var showAlert = false
  2. @State var cacheSizeResult: Result<UInt, KingfisherError>? = nil
  3. var body: some View {
  4. List {
  5. Button("Check Cache") {
  6. KingfisherManager.shared.cache.calculateDiskStorageSize { result in
  7. cacheSizeResult = result
  8. showAlert = true
  9. }
  10. }
  11. .alert(
  12. "Disk Cache",
  13. isPresented: $showAlert,
  14. presenting: cacheSizeResult,
  15. actions: { result in
  16. // TODO: Actions
  17. }, message: { result in
  18. switch result {
  19. case .success(let size):
  20. Text("Size: \(Double(size) / 1024 / 1024) MB")
  21. case .failure(let error):
  22. Text(error.localizedDescription)
  23. }
  24. })
  25. ForEach(0 ..< 10) { i in
  26. HStack {
  27. KFImage(url(at: i))
  28. // ...
  29. }
  30. }
  31. }.listStyle(.plain)
  32. }