Defines.swift 1017 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. //
  2. // Defines.swift
  3. // Bark
  4. //
  5. // Created by huangfeng on 2018/6/26.
  6. // Copyright © 2018 Fin. All rights reserved.
  7. //
  8. import RxCocoa
  9. import UIKit
  10. /// 将代码安全的运行在主线程
  11. func dispatch_sync_safely_main_queue(_ block: () -> ()) {
  12. if Thread.isMainThread {
  13. block()
  14. } else {
  15. DispatchQueue.main.sync {
  16. block()
  17. }
  18. }
  19. }
  20. extension UIViewController {
  21. func showSnackbar(text: String) {
  22. self.snackbarController?.snackbar.text = text
  23. self.snackbarController?.animate(snackbar: .visible)
  24. self.snackbarController?.animate(snackbar: .hidden, delay: 3)
  25. }
  26. }
  27. let kNavigationHeight: CGFloat = {
  28. kSafeAreaInsets.top + 44
  29. }()
  30. let kSafeAreaInsets: UIEdgeInsets = {
  31. UIWindow().safeAreaInsets
  32. }()
  33. func castOrThrow<T>(_ resultType: T.Type, _ object: Any) throws -> T {
  34. guard let returnValue = object as? T else {
  35. throw RxCocoaError.castingError(object: object, targetType: resultType)
  36. }
  37. return returnValue
  38. }