Explorar o código

唯一标示封装完成

nanxinlin %!s(int64=6) %!d(string=hai) anos
pai
achega
d51f89b16b

+ 2 - 2
RainbowPlanet/Podfile

@@ -5,8 +5,6 @@ target 'RainbowPlanet' do
   # Comment the next line if you're not using Swift and don't want to use dynamic frameworks
   inhibit_all_warnings!
   use_frameworks!
-
-  # Pods for RainbowPlanet
   # 网络请求
   pod 'Alamofire'
   pod 'Moya/RxSwift'
@@ -51,6 +49,8 @@ target 'RainbowPlanet' do
   pod 'SwiftDate'
   # pop动画
   pod 'FWPopupView'
+  # 存储数据Keychain
+  pod 'KeychainAccess'
   # 路由
 #  pod 'MGJRouter'
 

+ 5 - 1
RainbowPlanet/Podfile.lock

@@ -11,6 +11,7 @@ PODS:
     - SnapKit
   - IQKeyboardManagerSwift (6.2.0)
   - JXCategoryView (1.2.9)
+  - KeychainAccess (3.1.2)
   - Kingfisher (4.10.1)
   - LYEmptyView (1.2.3)
   - MBProgressHUD (1.1.0)
@@ -74,6 +75,7 @@ DEPENDENCIES:
   - FWPopupView
   - IQKeyboardManagerSwift
   - JXCategoryView
+  - KeychainAccess
   - Kingfisher
   - LYEmptyView
   - MBProgressHUD
@@ -112,6 +114,7 @@ SPEC REPOS:
     - FWPopupView
     - IQKeyboardManagerSwift
     - JXCategoryView
+    - KeychainAccess
     - Kingfisher
     - LYEmptyView
     - MBProgressHUD
@@ -150,6 +153,7 @@ SPEC CHECKSUMS:
   FWPopupView: a463a17aab606b0ef222a68784dbf32accba4711
   IQKeyboardManagerSwift: b07ccf9d8cafe993dcd6cb794eb4ba34611a0c4e
   JXCategoryView: 88a56da74d553ef98e9fc827dde46e277a2c3ed4
+  KeychainAccess: b3816fddcf28aa29d94b10ec305cd52be14c472b
   Kingfisher: c148cd7b47ebde9989f6bc7c27dcaa79d81279a0
   LYEmptyView: ea5827f3f81fcbec427f990005501991477bdae8
   MBProgressHUD: e7baa36a220447d8aeb12769bf0585582f3866d9
@@ -177,6 +181,6 @@ SPEC CHECKSUMS:
   UMCSecurityPlugins: 0831a08f3988f3cea9f1d3a7626cd9bee4fef150
   UMCShare: 552b29753f1b4da87b51d96545ed19e6263df397
 
-PODFILE CHECKSUM: 15b1ebaf51c0bc6cc3dcf9aed30021848fdf3fd6
+PODFILE CHECKSUM: 1fa779029416bec4902d54f85c1d95f7b4fd2ddf
 
 COCOAPODS: 1.5.3

+ 2 - 8
RainbowPlanet/RainbowPlanet.xcodeproj/project.pbxproj

@@ -348,7 +348,6 @@
 		A72A725422321B9400B21995 /* Manager */ = {
 			isa = PBXGroup;
 			children = (
-				A72A7344223350D900B21995 /* ShanYanManager */,
 				A72A730522321F1D00B21995 /* PayManager */,
 				A72A726122321DBD00B21995 /* BaiduMapManager */,
 				A72A726422321DBD00B21995 /* UMManager */,
@@ -581,13 +580,6 @@
 			path = WeChatSDK;
 			sourceTree = "<group>";
 		};
-		A72A7344223350D900B21995 /* ShanYanManager */ = {
-			isa = PBXGroup;
-			children = (
-			);
-			path = ShanYanManager;
-			sourceTree = "<group>";
-		};
 		A72A73722233966800B21995 /* RootModel */ = {
 			isa = PBXGroup;
 			children = (
@@ -1133,6 +1125,7 @@
 				"${BUILT_PRODUCTS_DIR}/FWPopupView/FWPopupView.framework",
 				"${BUILT_PRODUCTS_DIR}/IQKeyboardManagerSwift/IQKeyboardManagerSwift.framework",
 				"${BUILT_PRODUCTS_DIR}/JXCategoryView/JXCategoryView.framework",
+				"${BUILT_PRODUCTS_DIR}/KeychainAccess/KeychainAccess.framework",
 				"${BUILT_PRODUCTS_DIR}/Kingfisher/Kingfisher.framework",
 				"${BUILT_PRODUCTS_DIR}/LYEmptyView/LYEmptyView.framework",
 				"${BUILT_PRODUCTS_DIR}/MBProgressHUD/MBProgressHUD.framework",
@@ -1167,6 +1160,7 @@
 				"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FWPopupView.framework",
 				"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/IQKeyboardManagerSwift.framework",
 				"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/JXCategoryView.framework",
+				"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/KeychainAccess.framework",
 				"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Kingfisher.framework",
 				"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/LYEmptyView.framework",
 				"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MBProgressHUD.framework",

+ 1 - 1
RainbowPlanet/RainbowPlanet/Manager/BaiduMapManager/BaiduMapManager.swift

@@ -26,7 +26,7 @@ class BaiduMapManager: NSObject {
         locationManager.requestLocation(withReGeocode: true, withNetworkState: true) { location, state, error in
 
             var locationModel = LocationModel.getLocationModel()
-            if (error != nil)  {
+            if (error != nil) {
                 LocationModel.setLocationModel(locationModel: LocationModel.getLocationModel()!)
                 locationModel = LocationModel.getLocationModel()
             } else {

+ 9 - 9
RainbowPlanet/RainbowPlanet/Manager/BaiduMapManager/LocationModel.swift

@@ -11,21 +11,21 @@ import UIKit
 class LocationModel: NSObject,NSCoding {
 
     /// 纬度
-    var latitude : String? = ""
+    var latitude : String = ""
     /// 经度
-    var longitude : String? = ""
+    var longitude : String = ""
     /// 城市code
-    var cityCode : String? = ""
+    var cityCode : String = ""
     /// 省
-    var province : String? = ""
+    var province : String = ""
     /// 城市
-    var city : String? = ""
+    var city : String = ""
     /// 区
-    var district : String? = ""
+    var district : String = ""
     /// 街道
-    var street : String? = ""
+    var street : String = ""
     /// 详细描述
-    var locationDescribe : String? = ""
+    var locationDescribe : String = ""
 
 
     /// 构造方法
@@ -106,7 +106,7 @@ class LocationModel: NSObject,NSCoding {
     }
 
     func toString() -> String {
-        return (self.province!+self.city!+self.district!+self.street!+self.locationDescribe!)
+        return (self.province+self.city+self.district+self.street+self.locationDescribe)
     }
 
 }

+ 1 - 1
RainbowPlanet/RainbowPlanet/Service/SwiftMoyaService/SwiftMoyaNetWorkManager.swift

@@ -88,7 +88,7 @@ private var isNetworkConnect: Bool {
 }
 
 
-class SwiftMoyaNetWorkManager: NSObject {
+public class SwiftMoyaNetWorkManager: NSObject {
 
     private let disposeBag = DisposeBag()
     private var dataBaseName : String = "RainbowPlanet"

+ 2 - 2
RainbowPlanet/RainbowPlanet/Service/SwiftMoyaService/SwiftMoyaNetWorkService.swift

@@ -11,13 +11,13 @@ import Moya
 import SwiftyJSON
 import ObjectMapper
 
-class SwiftMoyaNetWorkService: NSObject {
+public class SwiftMoyaNetWorkService: NSObject {
 
     private static let sharedInstance = SwiftMoyaNetWorkService()
 
     private override init() {} // 私有化init方法
 
-    class func shared() -> SwiftMoyaNetWorkService {
+    public class func shared() -> SwiftMoyaNetWorkService {
         return sharedInstance
     }
 

+ 26 - 0
RainbowPlanet/RainbowPlanet/Tools/AppInfo/AppInfo.swift

@@ -7,6 +7,7 @@
 //
 
 import UIKit
+import KeychainAccess
 
 struct  AppInfo {
     static let infoDictionary = Bundle.main.infoDictionary
@@ -29,4 +30,29 @@ struct  AppInfo {
 
     static let localizedModel = UIDevice.current.localizedModel  //设备区域化型号
 
+
+    /// 获取app唯一标识(uuid+keychain 生成设备唯一标识)
+    static var uuid :String {
+        get {
+            let service = Bundle.main.bundleIdentifier! // app名称
+            let account = Bundle.main.bundleIdentifier! // 账号
+            let keychain = Keychain(service: service)
+
+            var uuid = keychain[account]
+            if uuid == nil {
+                do {
+                    try keychain.synchronizable(true).set(String(describing: UIDevice.current.identifierForVendor!) , key: account)
+                } catch let error {
+                    NXLLog("error: \(error)")
+                }
+                uuid = keychain[account]
+                return uuid!
+            }else {
+                print(uuid!)
+                NXLLog(uuid!)
+                return uuid!
+            }
+        }
+    }
+
 }

+ 36 - 10
RainbowPlanet/RainbowPlanet/Tools/Extension/Extension+UIView.swift

@@ -8,9 +8,9 @@
 
 import UIKit
 
-extension UIView {
+public extension UIView {
     
-    var x:CGFloat{
+    public var x:CGFloat{
         get{
             return self.frame.origin.x
         }
@@ -19,7 +19,7 @@ extension UIView {
         }
     }
     
-    var y:CGFloat{
+    public var y:CGFloat{
         get{
             return self.frame.origin.y
         }
@@ -28,7 +28,7 @@ extension UIView {
         }
     }
     
-    var centerX:CGFloat{
+    public var centerX:CGFloat{
         get{
             return self.center.x
         }
@@ -37,7 +37,7 @@ extension UIView {
         }
     }
     
-    var centerY:CGFloat{
+    public var centerY:CGFloat{
         get{
             return self.center.y
         }
@@ -46,7 +46,7 @@ extension UIView {
         }
     }
     
-    var width:CGFloat{
+    public var width:CGFloat{
         get{
             return self.frame.size.width
         }set{
@@ -54,14 +54,14 @@ extension UIView {
         }
     }
     
-    var height:CGFloat{
+    public var height:CGFloat{
         get{
             return self.frame.size.height
         }set{
             self.frame.size.height = newValue
         }
     }
-    var size:CGSize{
+    public var size:CGSize{
         get{
             return self.frame.size
         }set{
@@ -69,7 +69,7 @@ extension UIView {
         }
     }
     
-    var origin:CGPoint{
+    public var origin:CGPoint{
         get{
             return self.frame.origin
         }set{
@@ -145,7 +145,7 @@ extension UIView {
     /// 将当前视图转为UIImage
     ///
     /// - Returns: 图片
-    func currentViewConversionImage() -> UIImage {
+    public func currentViewConversionImage() -> UIImage {
         if #available(iOS 10.0, *) {
             let renderer = UIGraphicsImageRenderer(bounds: bounds)
             return renderer.image { rendererContext in
@@ -160,6 +160,32 @@ extension UIView {
         }
 
     }
+
+
+    /// 在View上添加点击事件
+    ///
+    /// - Parameters:
+    ///   - tapNumber: 点击的此次
+    ///   - target: 点击事件
+    ///   - action: 处理事件
+    public func addTapGesture(_ tapNumber : Int, target: AnyObject , action : Selector) {
+        let tap = UITapGestureRecognizer(target: target, action: action)
+        tap.numberOfTapsRequired = tapNumber
+        self.addGestureRecognizer(tap)
+        self.isUserInteractionEnabled = true
+    }
+
+
+    /// 在View上添加长按事件点击事件
+    ///
+    /// - Parameters:
+    ///   - target: 点击事件
+    ///   - action:  处理事件
+    public func addLongPressGesture(_ target: AnyObject , action : Selector){
+        let press = UILongPressGestureRecognizer(target: target, action: action)
+        self.addGestureRecognizer(press)
+        self.isUserInteractionEnabled = true
+    }
     
 }