修复了部分UI,阿里推送token,wifi重名的问题
This commit is contained in:
+102
-84
@@ -260,16 +260,6 @@
|
||||
3D5C437321339F8F00E15B66 /* IfishChatView.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D5C437221339F8F00E15B66 /* IfishChatView.m */; };
|
||||
3D8F649721568AE500F04BD3 /* ConnectHotspotTipViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E52B400321042ED2003BBA3E /* ConnectHotspotTipViewController.m */; };
|
||||
3D8F649A21571D7C00F04BD3 /* HitbarWifeVc.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D8F649921571D7C00F04BD3 /* HitbarWifeVc.m */; };
|
||||
3D8F64B22157522100F04BD3 /* MJPropertyType.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D8F64A02157522100F04BD3 /* MJPropertyType.m */; };
|
||||
3D8F64B32157522100F04BD3 /* NSObject+MJKeyValue.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D8F64A32157522100F04BD3 /* NSObject+MJKeyValue.m */; };
|
||||
3D8F64B42157522100F04BD3 /* MJProperty.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D8F64A42157522100F04BD3 /* MJProperty.m */; };
|
||||
3D8F64B52157522100F04BD3 /* NSObject+MJCoding.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D8F64A62157522100F04BD3 /* NSObject+MJCoding.m */; };
|
||||
3D8F64B62157522100F04BD3 /* MJExtensionConst.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D8F64A82157522100F04BD3 /* MJExtensionConst.m */; };
|
||||
3D8F64B72157522100F04BD3 /* NSObject+MJProperty.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D8F64A92157522100F04BD3 /* NSObject+MJProperty.m */; };
|
||||
3D8F64B82157522200F04BD3 /* NSObject+MJClass.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D8F64AB2157522100F04BD3 /* NSObject+MJClass.m */; };
|
||||
3D8F64B92157522200F04BD3 /* NSString+MJExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D8F64AC2157522100F04BD3 /* NSString+MJExtension.m */; };
|
||||
3D8F64BA2157522200F04BD3 /* MJPropertyKey.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D8F64AD2157522100F04BD3 /* MJPropertyKey.m */; };
|
||||
3D8F64BB2157522200F04BD3 /* MJFoundation.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D8F64B12157522100F04BD3 /* MJFoundation.m */; };
|
||||
3D8F64BE215752AF00F04BD3 /* IfishHeaterVo.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D8F64BD215752AF00F04BD3 /* IfishHeaterVo.m */; };
|
||||
3D8F64C12157530000F04BD3 /* IfishHistroyVo.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D8F64C02157530000F04BD3 /* IfishHistroyVo.m */; };
|
||||
3D8F64C42157791D00F04BD3 /* IfishBaseVc.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D8F64C32157791D00F04BD3 /* IfishBaseVc.m */; };
|
||||
@@ -2413,11 +2403,6 @@
|
||||
CB7D6AC522966C6C0014E5C7 /* code_wechat_us.jpeg in Resources */ = {isa = PBXBuildFile; fileRef = CB7D6AC422966C6B0014E5C7 /* code_wechat_us.jpeg */; };
|
||||
CB7D6AE822969F090014E5C7 /* AppDelegate+AliPushConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = CB7D6AE622969F090014E5C7 /* AppDelegate+AliPushConfig.h */; };
|
||||
CB7D6AE922969F090014E5C7 /* AppDelegate+AliPushConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = CB7D6AE722969F090014E5C7 /* AppDelegate+AliPushConfig.m */; };
|
||||
CB7D6AEC2296A1A40014E5C7 /* CloudPushSDK.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CB7D6AEB2296A1A40014E5C7 /* CloudPushSDK.framework */; };
|
||||
CB7D6AEE2296A2250014E5C7 /* AliyunEmasServices-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = CB7D6AED2296A2250014E5C7 /* AliyunEmasServices-Info.plist */; };
|
||||
CB7D6AF22296A6910014E5C7 /* UTDID.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CB7D6AEF2296A68E0014E5C7 /* UTDID.framework */; };
|
||||
CB7D6AF32296A6910014E5C7 /* AlicloudUtils.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CB7D6AF02296A6900014E5C7 /* AlicloudUtils.framework */; };
|
||||
CB7D6AF42296A6910014E5C7 /* UTMini.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CB7D6AF12296A6910014E5C7 /* UTMini.framework */; };
|
||||
CB8B6468230F7F980032EB24 /* IfishMainInfoCell.h in Headers */ = {isa = PBXBuildFile; fileRef = CB8B6466230F7F980032EB24 /* IfishMainInfoCell.h */; };
|
||||
CB8B6469230F7F980032EB24 /* IfishMainInfoCell.m in Sources */ = {isa = PBXBuildFile; fileRef = CB8B6467230F7F980032EB24 /* IfishMainInfoCell.m */; };
|
||||
CB8B646C230FAD340032EB24 /* Bugly.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CB8B646B230FAD340032EB24 /* Bugly.framework */; };
|
||||
@@ -2461,6 +2446,31 @@
|
||||
CBA6169A22924F1E00ED380D /* MessageAlertView.m in Sources */ = {isa = PBXBuildFile; fileRef = CBA6169822924F1E00ED380D /* MessageAlertView.m */; };
|
||||
CBA616A822928B1700ED380D /* UIButton+button.m in Sources */ = {isa = PBXBuildFile; fileRef = CBA616A722928B1700ED380D /* UIButton+button.m */; };
|
||||
CBA616AB22928BCF00ED380D /* UIButton+button.h in Headers */ = {isa = PBXBuildFile; fileRef = CBA616AA22928BCE00ED380D /* UIButton+button.h */; };
|
||||
CBB0242F23517947002900D5 /* MJProperty.m in Sources */ = {isa = PBXBuildFile; fileRef = CBB0241A23517940002900D5 /* MJProperty.m */; };
|
||||
CBB0243023517947002900D5 /* MJFoundation.m in Sources */ = {isa = PBXBuildFile; fileRef = CBB0241B23517941002900D5 /* MJFoundation.m */; };
|
||||
CBB0243123517947002900D5 /* MJFoundation.h in Headers */ = {isa = PBXBuildFile; fileRef = CBB0241C23517942002900D5 /* MJFoundation.h */; };
|
||||
CBB0243223517947002900D5 /* NSObject+MJProperty.h in Headers */ = {isa = PBXBuildFile; fileRef = CBB0241D23517942002900D5 /* NSObject+MJProperty.h */; };
|
||||
CBB0243323517947002900D5 /* NSObject+MJKeyValue.h in Headers */ = {isa = PBXBuildFile; fileRef = CBB0241E23517943002900D5 /* NSObject+MJKeyValue.h */; };
|
||||
CBB0243423517947002900D5 /* NSObject+MJKeyValue.m in Sources */ = {isa = PBXBuildFile; fileRef = CBB0241F23517943002900D5 /* NSObject+MJKeyValue.m */; };
|
||||
CBB0243523517947002900D5 /* NSString+MJExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = CBB0242023517943002900D5 /* NSString+MJExtension.m */; };
|
||||
CBB0243623517947002900D5 /* NSObject+MJProperty.m in Sources */ = {isa = PBXBuildFile; fileRef = CBB0242123517944002900D5 /* NSObject+MJProperty.m */; };
|
||||
CBB0243723517947002900D5 /* MJExtension.h in Headers */ = {isa = PBXBuildFile; fileRef = CBB0242223517944002900D5 /* MJExtension.h */; };
|
||||
CBB0243823517947002900D5 /* NSObject+MJCoding.m in Sources */ = {isa = PBXBuildFile; fileRef = CBB0242323517944002900D5 /* NSObject+MJCoding.m */; };
|
||||
CBB0243923517947002900D5 /* MJPropertyKey.h in Headers */ = {isa = PBXBuildFile; fileRef = CBB0242423517944002900D5 /* MJPropertyKey.h */; };
|
||||
CBB0243A23517947002900D5 /* NSObject+MJClass.h in Headers */ = {isa = PBXBuildFile; fileRef = CBB0242523517944002900D5 /* NSObject+MJClass.h */; };
|
||||
CBB0243B23517947002900D5 /* MJPropertyKey.m in Sources */ = {isa = PBXBuildFile; fileRef = CBB0242623517945002900D5 /* MJPropertyKey.m */; };
|
||||
CBB0243C23517947002900D5 /* NSObject+MJClass.m in Sources */ = {isa = PBXBuildFile; fileRef = CBB0242723517945002900D5 /* NSObject+MJClass.m */; };
|
||||
CBB0243D23517947002900D5 /* MJExtensionConst.m in Sources */ = {isa = PBXBuildFile; fileRef = CBB0242823517945002900D5 /* MJExtensionConst.m */; };
|
||||
CBB0243E23517947002900D5 /* NSString+MJExtension.h in Headers */ = {isa = PBXBuildFile; fileRef = CBB0242923517945002900D5 /* NSString+MJExtension.h */; };
|
||||
CBB0243F23517947002900D5 /* MJProperty.h in Headers */ = {isa = PBXBuildFile; fileRef = CBB0242A23517945002900D5 /* MJProperty.h */; };
|
||||
CBB0244023517947002900D5 /* NSObject+MJCoding.h in Headers */ = {isa = PBXBuildFile; fileRef = CBB0242B23517946002900D5 /* NSObject+MJCoding.h */; };
|
||||
CBB0244123517947002900D5 /* MJExtensionConst.h in Headers */ = {isa = PBXBuildFile; fileRef = CBB0242C23517946002900D5 /* MJExtensionConst.h */; };
|
||||
CBB0244223517947002900D5 /* MJPropertyType.m in Sources */ = {isa = PBXBuildFile; fileRef = CBB0242D23517946002900D5 /* MJPropertyType.m */; };
|
||||
CBB0244323517947002900D5 /* MJPropertyType.h in Headers */ = {isa = PBXBuildFile; fileRef = CBB0242E23517946002900D5 /* MJPropertyType.h */; };
|
||||
CBB0244823518F3A002900D5 /* UTDID.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CBB0244423518F34002900D5 /* UTDID.framework */; };
|
||||
CBB0244923518F3A002900D5 /* UTMini.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CBB0244523518F36002900D5 /* UTMini.framework */; };
|
||||
CBB0244A23518F3A002900D5 /* AlicloudUtils.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CBB0244623518F38002900D5 /* AlicloudUtils.framework */; };
|
||||
CBB0244B23518F3A002900D5 /* CloudPushSDK.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CBB0244723518F3A002900D5 /* CloudPushSDK.framework */; };
|
||||
E51D7D4B208CD528001FF053 /* RuiMeiCHNameCustom.m in Sources */ = {isa = PBXBuildFile; fileRef = E51D7D4A208CD528001FF053 /* RuiMeiCHNameCustom.m */; };
|
||||
E51D7D4E208CD5C8001FF053 /* RuiMeiCHControl.m in Sources */ = {isa = PBXBuildFile; fileRef = E51D7D4D208CD5C8001FF053 /* RuiMeiCHControl.m */; };
|
||||
E51D7D51208CDB5B001FF053 /* RuiMeiSetViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E51D7D50208CDB5B001FF053 /* RuiMeiSetViewController.m */; };
|
||||
@@ -2851,27 +2861,6 @@
|
||||
3D5C437221339F8F00E15B66 /* IfishChatView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = IfishChatView.m; sourceTree = "<group>"; };
|
||||
3D8F649821571D7C00F04BD3 /* HitbarWifeVc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HitbarWifeVc.h; sourceTree = "<group>"; };
|
||||
3D8F649921571D7C00F04BD3 /* HitbarWifeVc.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = HitbarWifeVc.m; sourceTree = "<group>"; };
|
||||
3D8F649D2157522100F04BD3 /* MJPropertyKey.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MJPropertyKey.h; sourceTree = "<group>"; };
|
||||
3D8F649E2157522100F04BD3 /* NSObject+MJClass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSObject+MJClass.h"; sourceTree = "<group>"; };
|
||||
3D8F649F2157522100F04BD3 /* NSString+MJExtension.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSString+MJExtension.h"; sourceTree = "<group>"; };
|
||||
3D8F64A02157522100F04BD3 /* MJPropertyType.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MJPropertyType.m; sourceTree = "<group>"; };
|
||||
3D8F64A12157522100F04BD3 /* NSObject+MJProperty.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSObject+MJProperty.h"; sourceTree = "<group>"; };
|
||||
3D8F64A22157522100F04BD3 /* MJExtensionConst.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MJExtensionConst.h; sourceTree = "<group>"; };
|
||||
3D8F64A32157522100F04BD3 /* NSObject+MJKeyValue.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSObject+MJKeyValue.m"; sourceTree = "<group>"; };
|
||||
3D8F64A42157522100F04BD3 /* MJProperty.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MJProperty.m; sourceTree = "<group>"; };
|
||||
3D8F64A52157522100F04BD3 /* MJFoundation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MJFoundation.h; sourceTree = "<group>"; };
|
||||
3D8F64A62157522100F04BD3 /* NSObject+MJCoding.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSObject+MJCoding.m"; sourceTree = "<group>"; };
|
||||
3D8F64A72157522100F04BD3 /* MJExtension.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MJExtension.h; sourceTree = "<group>"; };
|
||||
3D8F64A82157522100F04BD3 /* MJExtensionConst.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MJExtensionConst.m; sourceTree = "<group>"; };
|
||||
3D8F64A92157522100F04BD3 /* NSObject+MJProperty.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSObject+MJProperty.m"; sourceTree = "<group>"; };
|
||||
3D8F64AA2157522100F04BD3 /* MJPropertyType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MJPropertyType.h; sourceTree = "<group>"; };
|
||||
3D8F64AB2157522100F04BD3 /* NSObject+MJClass.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSObject+MJClass.m"; sourceTree = "<group>"; };
|
||||
3D8F64AC2157522100F04BD3 /* NSString+MJExtension.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSString+MJExtension.m"; sourceTree = "<group>"; };
|
||||
3D8F64AD2157522100F04BD3 /* MJPropertyKey.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MJPropertyKey.m; sourceTree = "<group>"; };
|
||||
3D8F64AE2157522100F04BD3 /* MJProperty.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MJProperty.h; sourceTree = "<group>"; };
|
||||
3D8F64AF2157522100F04BD3 /* NSObject+MJKeyValue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSObject+MJKeyValue.h"; sourceTree = "<group>"; };
|
||||
3D8F64B02157522100F04BD3 /* NSObject+MJCoding.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSObject+MJCoding.h"; sourceTree = "<group>"; };
|
||||
3D8F64B12157522100F04BD3 /* MJFoundation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MJFoundation.m; sourceTree = "<group>"; };
|
||||
3D8F64BC215752AF00F04BD3 /* IfishHeaterVo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IfishHeaterVo.h; sourceTree = "<group>"; };
|
||||
3D8F64BD215752AF00F04BD3 /* IfishHeaterVo.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = IfishHeaterVo.m; sourceTree = "<group>"; };
|
||||
3D8F64BF2157530000F04BD3 /* IfishHistroyVo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IfishHistroyVo.h; sourceTree = "<group>"; };
|
||||
@@ -5818,11 +5807,6 @@
|
||||
CB7D6AC422966C6B0014E5C7 /* code_wechat_us.jpeg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = code_wechat_us.jpeg; sourceTree = "<group>"; };
|
||||
CB7D6AE622969F090014E5C7 /* AppDelegate+AliPushConfig.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "AppDelegate+AliPushConfig.h"; sourceTree = "<group>"; };
|
||||
CB7D6AE722969F090014E5C7 /* AppDelegate+AliPushConfig.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "AppDelegate+AliPushConfig.m"; sourceTree = "<group>"; };
|
||||
CB7D6AEB2296A1A40014E5C7 /* CloudPushSDK.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = CloudPushSDK.framework; sourceTree = "<group>"; };
|
||||
CB7D6AED2296A2250014E5C7 /* AliyunEmasServices-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "AliyunEmasServices-Info.plist"; sourceTree = "<group>"; };
|
||||
CB7D6AEF2296A68E0014E5C7 /* UTDID.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = UTDID.framework; sourceTree = "<group>"; };
|
||||
CB7D6AF02296A6900014E5C7 /* AlicloudUtils.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = AlicloudUtils.framework; sourceTree = "<group>"; };
|
||||
CB7D6AF12296A6910014E5C7 /* UTMini.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = UTMini.framework; sourceTree = "<group>"; };
|
||||
CB7D6AF52296A6FF0014E5C7 /* libresolv.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libresolv.tbd; path = usr/lib/libresolv.tbd; sourceTree = SDKROOT; };
|
||||
CB8B6466230F7F980032EB24 /* IfishMainInfoCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = IfishMainInfoCell.h; path = ../../IfishDeviceSelectList/IfishMainInfoCell.h; sourceTree = "<group>"; };
|
||||
CB8B6467230F7F980032EB24 /* IfishMainInfoCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = IfishMainInfoCell.m; path = ../../IfishDeviceSelectList/IfishMainInfoCell.m; sourceTree = "<group>"; };
|
||||
@@ -5867,6 +5851,31 @@
|
||||
CBA6169822924F1E00ED380D /* MessageAlertView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MessageAlertView.m; sourceTree = "<group>"; };
|
||||
CBA616A722928B1700ED380D /* UIButton+button.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIButton+button.m"; sourceTree = "<group>"; };
|
||||
CBA616AA22928BCE00ED380D /* UIButton+button.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIButton+button.h"; sourceTree = "<group>"; };
|
||||
CBB0241A23517940002900D5 /* MJProperty.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MJProperty.m; sourceTree = "<group>"; };
|
||||
CBB0241B23517941002900D5 /* MJFoundation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MJFoundation.m; sourceTree = "<group>"; };
|
||||
CBB0241C23517942002900D5 /* MJFoundation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MJFoundation.h; sourceTree = "<group>"; };
|
||||
CBB0241D23517942002900D5 /* NSObject+MJProperty.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSObject+MJProperty.h"; sourceTree = "<group>"; };
|
||||
CBB0241E23517943002900D5 /* NSObject+MJKeyValue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSObject+MJKeyValue.h"; sourceTree = "<group>"; };
|
||||
CBB0241F23517943002900D5 /* NSObject+MJKeyValue.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSObject+MJKeyValue.m"; sourceTree = "<group>"; };
|
||||
CBB0242023517943002900D5 /* NSString+MJExtension.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSString+MJExtension.m"; sourceTree = "<group>"; };
|
||||
CBB0242123517944002900D5 /* NSObject+MJProperty.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSObject+MJProperty.m"; sourceTree = "<group>"; };
|
||||
CBB0242223517944002900D5 /* MJExtension.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MJExtension.h; sourceTree = "<group>"; };
|
||||
CBB0242323517944002900D5 /* NSObject+MJCoding.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSObject+MJCoding.m"; sourceTree = "<group>"; };
|
||||
CBB0242423517944002900D5 /* MJPropertyKey.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MJPropertyKey.h; sourceTree = "<group>"; };
|
||||
CBB0242523517944002900D5 /* NSObject+MJClass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSObject+MJClass.h"; sourceTree = "<group>"; };
|
||||
CBB0242623517945002900D5 /* MJPropertyKey.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MJPropertyKey.m; sourceTree = "<group>"; };
|
||||
CBB0242723517945002900D5 /* NSObject+MJClass.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSObject+MJClass.m"; sourceTree = "<group>"; };
|
||||
CBB0242823517945002900D5 /* MJExtensionConst.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MJExtensionConst.m; sourceTree = "<group>"; };
|
||||
CBB0242923517945002900D5 /* NSString+MJExtension.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSString+MJExtension.h"; sourceTree = "<group>"; };
|
||||
CBB0242A23517945002900D5 /* MJProperty.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MJProperty.h; sourceTree = "<group>"; };
|
||||
CBB0242B23517946002900D5 /* NSObject+MJCoding.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSObject+MJCoding.h"; sourceTree = "<group>"; };
|
||||
CBB0242C23517946002900D5 /* MJExtensionConst.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MJExtensionConst.h; sourceTree = "<group>"; };
|
||||
CBB0242D23517946002900D5 /* MJPropertyType.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MJPropertyType.m; sourceTree = "<group>"; };
|
||||
CBB0242E23517946002900D5 /* MJPropertyType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MJPropertyType.h; sourceTree = "<group>"; };
|
||||
CBB0244423518F34002900D5 /* UTDID.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = UTDID.framework; sourceTree = "<group>"; };
|
||||
CBB0244523518F36002900D5 /* UTMini.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = UTMini.framework; sourceTree = "<group>"; };
|
||||
CBB0244623518F38002900D5 /* AlicloudUtils.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = AlicloudUtils.framework; sourceTree = "<group>"; };
|
||||
CBB0244723518F3A002900D5 /* CloudPushSDK.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = CloudPushSDK.framework; sourceTree = "<group>"; };
|
||||
E51D7D49208CD528001FF053 /* RuiMeiCHNameCustom.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RuiMeiCHNameCustom.h; sourceTree = "<group>"; };
|
||||
E51D7D4A208CD528001FF053 /* RuiMeiCHNameCustom.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RuiMeiCHNameCustom.m; sourceTree = "<group>"; };
|
||||
E51D7D4C208CD5C8001FF053 /* RuiMeiCHControl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RuiMeiCHControl.h; sourceTree = "<group>"; };
|
||||
@@ -5967,7 +5976,6 @@
|
||||
CB484CF122B87D250075F050 /* libresolv.tbd in Frameworks */,
|
||||
18C54F202350541500DF4E7D /* AlibabaAuthSDK.framework in Frameworks */,
|
||||
88C686401EA611AE004CDFD9 /* libsqlite3.tbd in Frameworks */,
|
||||
CB7D6AF42296A6910014E5C7 /* UTMini.framework in Frameworks */,
|
||||
3D4AFF5F21F34E1C0053BAA0 /* libstdc++.tbd in Frameworks */,
|
||||
3D1C50B8221A9EDF0096AE43 /* YTargetAndAction.a in Frameworks */,
|
||||
3D39D31C21F34946001C50B6 /* libbz2.tbd in Frameworks */,
|
||||
@@ -5986,6 +5994,7 @@
|
||||
88C686541EA61275004CDFD9 /* CFNetwork.framework in Frameworks */,
|
||||
88C686521EA61267004CDFD9 /* CoreAudio.framework in Frameworks */,
|
||||
18C54F282350541500DF4E7D /* UTMini.framework in Frameworks */,
|
||||
CBB0244B23518F3A002900D5 /* CloudPushSDK.framework in Frameworks */,
|
||||
18C54F232350541500DF4E7D /* SecurityGuardSDK.framework in Frameworks */,
|
||||
3D1C50B0221A9EDF0096AE43 /* YMsgBox.a in Frameworks */,
|
||||
88C686501EA61259004CDFD9 /* CoreLocation.framework in Frameworks */,
|
||||
@@ -6006,9 +6015,9 @@
|
||||
88C6863C1EA6116C004CDFD9 /* libxml2.tbd in Frameworks */,
|
||||
88C6863A1EA61149004CDFD9 /* MapKit.framework in Frameworks */,
|
||||
88C686381EA61138004CDFD9 /* OpenGLES.framework in Frameworks */,
|
||||
CBB0244A23518F3A002900D5 /* AlicloudUtils.framework in Frameworks */,
|
||||
88C686361EA61123004CDFD9 /* QuartzCore.framework in Frameworks */,
|
||||
88C686341EA61114004CDFD9 /* SystemConfiguration.framework in Frameworks */,
|
||||
CB7D6AF22296A6910014E5C7 /* UTDID.framework in Frameworks */,
|
||||
88C686321EA61105004CDFD9 /* CoreFoundation.framework in Frameworks */,
|
||||
88C686301EA610F4004CDFD9 /* Security.framework in Frameworks */,
|
||||
88C6862E1EA610E5004CDFD9 /* JavaScriptCore.framework in Frameworks */,
|
||||
@@ -6028,17 +6037,16 @@
|
||||
88C686161EA60EB3004CDFD9 /* CoreText.framework in Frameworks */,
|
||||
18C54F212350541500DF4E7D /* AlibcTradeSDK.framework in Frameworks */,
|
||||
88C686141EA60EA9004CDFD9 /* WebKit.framework in Frameworks */,
|
||||
CB7D6AF32296A6910014E5C7 /* AlicloudUtils.framework in Frameworks */,
|
||||
CB8B646C230FAD340032EB24 /* Bugly.framework in Frameworks */,
|
||||
88C686011EA603A8004CDFD9 /* UShareUI.framework in Frameworks */,
|
||||
88C685F91EA603A8004CDFD9 /* libSocialWeChat.a in Frameworks */,
|
||||
CB48209B2335CB2300A50C92 /* GWP2P.framework in Frameworks */,
|
||||
3DD7AB4B21E2F2FB0064856A /* libzbar.a in Frameworks */,
|
||||
88C685F61EA603A8004CDFD9 /* libSocialSina.a in Frameworks */,
|
||||
CB7D6AEC2296A1A40014E5C7 /* CloudPushSDK.framework in Frameworks */,
|
||||
88C685FF1EA603A8004CDFD9 /* libUMSocialLog.a in Frameworks */,
|
||||
88C685FA1EA603A8004CDFD9 /* libWeChatSDK.a in Frameworks */,
|
||||
881671BB1EA5DE2B00BEBF23 /* UMComDataStorage.framework in Frameworks */,
|
||||
CBB0244923518F3A002900D5 /* UTMini.framework in Frameworks */,
|
||||
883E7BCE1EA5FA1A00ED5D89 /* SMS_SDK.framework in Frameworks */,
|
||||
88C685F71EA603A8004CDFD9 /* libWeiboSDK.a in Frameworks */,
|
||||
881671BE1EA5DE2B00BEBF23 /* UMComNetwork.framework in Frameworks */,
|
||||
@@ -6053,6 +6061,7 @@
|
||||
88C685FD1EA603A8004CDFD9 /* UMSocialNetwork.framework in Frameworks */,
|
||||
88C685F31EA603A8004CDFD9 /* libSocialQQ.a in Frameworks */,
|
||||
883E7BCC1EA5FA1A00ED5D89 /* MOBFoundation.framework in Frameworks */,
|
||||
CBB0244823518F3A002900D5 /* UTDID.framework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
@@ -6619,27 +6628,27 @@
|
||||
3D8F649C2157522100F04BD3 /* MJExtension */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
3D8F649D2157522100F04BD3 /* MJPropertyKey.h */,
|
||||
3D8F649E2157522100F04BD3 /* NSObject+MJClass.h */,
|
||||
3D8F649F2157522100F04BD3 /* NSString+MJExtension.h */,
|
||||
3D8F64A02157522100F04BD3 /* MJPropertyType.m */,
|
||||
3D8F64A12157522100F04BD3 /* NSObject+MJProperty.h */,
|
||||
3D8F64A22157522100F04BD3 /* MJExtensionConst.h */,
|
||||
3D8F64A32157522100F04BD3 /* NSObject+MJKeyValue.m */,
|
||||
3D8F64A42157522100F04BD3 /* MJProperty.m */,
|
||||
3D8F64A52157522100F04BD3 /* MJFoundation.h */,
|
||||
3D8F64A62157522100F04BD3 /* NSObject+MJCoding.m */,
|
||||
3D8F64A72157522100F04BD3 /* MJExtension.h */,
|
||||
3D8F64A82157522100F04BD3 /* MJExtensionConst.m */,
|
||||
3D8F64A92157522100F04BD3 /* NSObject+MJProperty.m */,
|
||||
3D8F64AA2157522100F04BD3 /* MJPropertyType.h */,
|
||||
3D8F64AB2157522100F04BD3 /* NSObject+MJClass.m */,
|
||||
3D8F64AC2157522100F04BD3 /* NSString+MJExtension.m */,
|
||||
3D8F64AD2157522100F04BD3 /* MJPropertyKey.m */,
|
||||
3D8F64AE2157522100F04BD3 /* MJProperty.h */,
|
||||
3D8F64AF2157522100F04BD3 /* NSObject+MJKeyValue.h */,
|
||||
3D8F64B02157522100F04BD3 /* NSObject+MJCoding.h */,
|
||||
3D8F64B12157522100F04BD3 /* MJFoundation.m */,
|
||||
CBB0242223517944002900D5 /* MJExtension.h */,
|
||||
CBB0242C23517946002900D5 /* MJExtensionConst.h */,
|
||||
CBB0242823517945002900D5 /* MJExtensionConst.m */,
|
||||
CBB0241C23517942002900D5 /* MJFoundation.h */,
|
||||
CBB0241B23517941002900D5 /* MJFoundation.m */,
|
||||
CBB0242A23517945002900D5 /* MJProperty.h */,
|
||||
CBB0241A23517940002900D5 /* MJProperty.m */,
|
||||
CBB0242423517944002900D5 /* MJPropertyKey.h */,
|
||||
CBB0242623517945002900D5 /* MJPropertyKey.m */,
|
||||
CBB0242E23517946002900D5 /* MJPropertyType.h */,
|
||||
CBB0242D23517946002900D5 /* MJPropertyType.m */,
|
||||
CBB0242523517944002900D5 /* NSObject+MJClass.h */,
|
||||
CBB0242723517945002900D5 /* NSObject+MJClass.m */,
|
||||
CBB0242B23517946002900D5 /* NSObject+MJCoding.h */,
|
||||
CBB0242323517944002900D5 /* NSObject+MJCoding.m */,
|
||||
CBB0241E23517943002900D5 /* NSObject+MJKeyValue.h */,
|
||||
CBB0241F23517943002900D5 /* NSObject+MJKeyValue.m */,
|
||||
CBB0241D23517942002900D5 /* NSObject+MJProperty.h */,
|
||||
CBB0242123517944002900D5 /* NSObject+MJProperty.m */,
|
||||
CBB0242923517945002900D5 /* NSString+MJExtension.h */,
|
||||
CBB0242023517943002900D5 /* NSString+MJExtension.m */,
|
||||
);
|
||||
path = MJExtension;
|
||||
sourceTree = "<group>";
|
||||
@@ -12419,11 +12428,10 @@
|
||||
CB7D6AEA2296A1870014E5C7 /* AliPush */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
CB7D6AF02296A6900014E5C7 /* AlicloudUtils.framework */,
|
||||
CB7D6AEF2296A68E0014E5C7 /* UTDID.framework */,
|
||||
CB7D6AF12296A6910014E5C7 /* UTMini.framework */,
|
||||
CB7D6AED2296A2250014E5C7 /* AliyunEmasServices-Info.plist */,
|
||||
CB7D6AEB2296A1A40014E5C7 /* CloudPushSDK.framework */,
|
||||
CBB0244623518F38002900D5 /* AlicloudUtils.framework */,
|
||||
CBB0244723518F3A002900D5 /* CloudPushSDK.framework */,
|
||||
CBB0244423518F34002900D5 /* UTDID.framework */,
|
||||
CBB0244523518F36002900D5 /* UTMini.framework */,
|
||||
);
|
||||
path = AliPush;
|
||||
sourceTree = "<group>";
|
||||
@@ -12637,6 +12645,7 @@
|
||||
CB484E1322B8C8C90075F050 /* vaapi.h in Headers */,
|
||||
3D1C50CC221A9EE00096AE43 /* MPNotificationView.h in Headers */,
|
||||
3D1C50FF221A9EE00096AE43 /* YooseeCenterViewCell.h in Headers */,
|
||||
CBB0243323517947002900D5 /* NSObject+MJKeyValue.h in Headers */,
|
||||
CB484CFF22B8B0D30075F050 /* Reachability.h in Headers */,
|
||||
CB484E0B22B8C8C80075F050 /* version.h in Headers */,
|
||||
CB484E1722B8C8C90075F050 /* dxva2.h in Headers */,
|
||||
@@ -12658,6 +12667,7 @@
|
||||
3D1C50E2221A9EE00096AE43 /* UDPManager.h in Headers */,
|
||||
3D1C509A221A9EDF0096AE43 /* ConnectFailurePromptView.h in Headers */,
|
||||
CBA6168A228F9AB100ED380D /* ViewController+MASAdditions.h in Headers */,
|
||||
CBB0244023517947002900D5 /* NSObject+MJCoding.h in Headers */,
|
||||
FA0892ED226C15000084A609 /* Xuanduo2DataUtility.h in Headers */,
|
||||
3D1C50B7221A9EDF0096AE43 /* YTargetAndAction.h in Headers */,
|
||||
3D1C510A221A9EE00096AE43 /* PlayBaseViewController.h in Headers */,
|
||||
@@ -12676,6 +12686,7 @@
|
||||
CB484DEF22B8C8C80075F050 /* audio_fifo.h in Headers */,
|
||||
CBA61674228F9AB100ED380D /* MASCompositeConstraint.h in Headers */,
|
||||
3D1C50CE221A9EE00096AE43 /* CustomTopBar.h in Headers */,
|
||||
CBB0243F23517947002900D5 /* MJProperty.h in Headers */,
|
||||
CB484E0A22B8C8C80075F050 /* avstring.h in Headers */,
|
||||
3D1C50DD221A9EE00096AE43 /* RecommendInfoDAO.h in Headers */,
|
||||
CB0F4E8722951A130091C76D /* SVIndefiniteAnimatedView.h in Headers */,
|
||||
@@ -12710,6 +12721,7 @@
|
||||
CBA615FC228E8E5A00ED380D /* MyMessageViewController.h in Headers */,
|
||||
CB484E1522B8C8C90075F050 /* avfft.h in Headers */,
|
||||
CB484E0022B8C8C80075F050 /* channel_layout.h in Headers */,
|
||||
CBB0243123517947002900D5 /* MJFoundation.h in Headers */,
|
||||
3D1C512B221A9EE10096AE43 /* IfishCameraRecordfirstCell.h in Headers */,
|
||||
402591952238D91400CE4900 /* UINavigationController+Config.h in Headers */,
|
||||
CB484DDF22B8C8C80075F050 /* fifo.h in Headers */,
|
||||
@@ -12727,6 +12739,7 @@
|
||||
FA0892F52270BED00084A609 /* XuanduoHuliModel.h in Headers */,
|
||||
3D1C50C7221A9EE00096AE43 /* LocalDevice.h in Headers */,
|
||||
3D1C50A0221A9EDF0096AE43 /* TouchButton.h in Headers */,
|
||||
CBB0243723517947002900D5 /* MJExtension.h in Headers */,
|
||||
3D1C50F2221A9EE00096AE43 /* mesg.h in Headers */,
|
||||
CBA6169922924F1E00ED380D /* MessageAlertView.h in Headers */,
|
||||
CB484E0C22B8C8C80075F050 /* avio.h in Headers */,
|
||||
@@ -12735,6 +12748,7 @@
|
||||
CBA61658228F9A6C00ED380D /* NSObject+YYModel.h in Headers */,
|
||||
3D1C50C4221A9EE00096AE43 /* OBGradientView.h in Headers */,
|
||||
3D1C509D221A9EDF0096AE43 /* GetContactMessageResult.h in Headers */,
|
||||
CBB0243923517947002900D5 /* MJPropertyKey.h in Headers */,
|
||||
CBA61681228F9AB100ED380D /* NSLayoutConstraint+MASDebugAdditions.h in Headers */,
|
||||
3D1C5109221A9EE00096AE43 /* P2PPlaybackController.h in Headers */,
|
||||
CB484DE422B8C8C80075F050 /* base64.h in Headers */,
|
||||
@@ -12779,6 +12793,7 @@
|
||||
3D1C512E221A9EE10096AE43 /* CameraBottomHView.h in Headers */,
|
||||
CB484E0E22B8C8C80075F050 /* version.h in Headers */,
|
||||
3D1C50E4221A9EE00096AE43 /* config.h in Headers */,
|
||||
CBB0243223517947002900D5 /* NSObject+MJProperty.h in Headers */,
|
||||
3D1C5104221A9EE00096AE43 /* YooseConnectFirstViewController.h in Headers */,
|
||||
CB484E1E22B8C8C90075F050 /* P2PCInterface.h in Headers */,
|
||||
3D1C5127221A9EE00096AE43 /* IfishCameraRecordSecondCell.h in Headers */,
|
||||
@@ -12791,10 +12806,14 @@
|
||||
CB4820942334E99700A50C92 /* IQUITextFieldView+Additions.h in Headers */,
|
||||
3D1C5139221A9EE10096AE43 /* FishControlSecondCell.h in Headers */,
|
||||
3D1C50B2221A9EDF0096AE43 /* FounderButton.h in Headers */,
|
||||
CBB0244323517947002900D5 /* MJPropertyType.h in Headers */,
|
||||
3D1C509F221A9EDF0096AE43 /* YProgressView.h in Headers */,
|
||||
CBB0243E23517947002900D5 /* NSString+MJExtension.h in Headers */,
|
||||
CB484E0822B8C8C80075F050 /* mathematics.h in Headers */,
|
||||
CB484E0F22B8C8C80075F050 /* swscale.h in Headers */,
|
||||
CBA616AB22928BCF00ED380D /* UIButton+button.h in Headers */,
|
||||
CBB0244123517947002900D5 /* MJExtensionConst.h in Headers */,
|
||||
CBB0243A23517947002900D5 /* NSObject+MJClass.h in Headers */,
|
||||
3D1C5144221A9EE10096AE43 /* MonitorBootmView.h in Headers */,
|
||||
3D1C50D3221A9EE00096AE43 /* UIScrollView+SVInfiniteScrolling.h in Headers */,
|
||||
CBA61655228F9A6C00ED380D /* YYModel.h in Headers */,
|
||||
@@ -13909,7 +13928,6 @@
|
||||
886FB19B1E5A9C1600256332 /* fishdoctor_iocn.png in Resources */,
|
||||
882958161DC04ED200E9DDD7 /* equipment_button@3x.png in Resources */,
|
||||
8874924F1E7BB58A00CDA284 /* gold_background.png in Resources */,
|
||||
CB7D6AEE2296A2250014E5C7 /* AliyunEmasServices-Info.plist in Resources */,
|
||||
887492301E7A90D000CDA284 /* fishdoctor_iocn__twentygold@2x.png in Resources */,
|
||||
8829570B1DBDA3A300E9DDD7 /* ZhiLeng_off.png in Resources */,
|
||||
8874923B1E7A90D000CDA284 /* fishdoctor_iocn_gold.png in Resources */,
|
||||
@@ -14331,7 +14349,6 @@
|
||||
883E79A31D48B0280030E075 /* shopNameCell.m in Sources */,
|
||||
88F5EFB61D48D08100CC7CAF /* UIImageView+AFNetworking.m in Sources */,
|
||||
88F5EFD71D48D08100CC7CAF /* MMRadialProgressView.m in Sources */,
|
||||
3D8F64B92157522200F04BD3 /* NSString+MJExtension.m in Sources */,
|
||||
885C43B81E89F79D00685A2E /* WMMenuItem.m in Sources */,
|
||||
881671DE1EA5DE2B00BEBF23 /* UMComUserProfileDetailView.m in Sources */,
|
||||
883E79C81D48B0280030E075 /* SetTimeCell.m in Sources */,
|
||||
@@ -14356,7 +14373,6 @@
|
||||
883E799F1D48B0280030E075 /* BrandCell.m in Sources */,
|
||||
883E78471D48A5E50030E075 /* KeLiAiSetViewController.m in Sources */,
|
||||
883E76321D4897570030E075 /* baseModel.m in Sources */,
|
||||
3D8F64BA2157522200F04BD3 /* MJPropertyKey.m in Sources */,
|
||||
883E786C1D48A5E50030E075 /* emptyInfoCollectionViewCell.m in Sources */,
|
||||
CB7D6AB822954FB90014E5C7 /* FuncUserDefault.m in Sources */,
|
||||
3D1C50C2221A9EE00096AE43 /* CustomBorderButton.m in Sources */,
|
||||
@@ -14455,6 +14471,7 @@
|
||||
881672211EA5DE2B00BEBF23 /* UMComBriefEditView.m in Sources */,
|
||||
881A1D4F1DD41AB000BA1AF4 /* MineKanEditSec1ThredCell.m in Sources */,
|
||||
885C43BC1E89F79D00685A2E /* WMPageController.m in Sources */,
|
||||
CBB0243C23517947002900D5 /* NSObject+MJClass.m in Sources */,
|
||||
3D1C50FA221A9EE00096AE43 /* WaitingPageView.m in Sources */,
|
||||
881671F31EA5DE2B00BEBF23 /* UMComHorizonMenuView.m in Sources */,
|
||||
3DD7AB4F21E2F2FB0064856A /* QRCodeGenerator.m in Sources */,
|
||||
@@ -14478,6 +14495,7 @@
|
||||
88F5EFCD1D48D08100CC7CAF /* UIView+JHExtension.m in Sources */,
|
||||
88613F741E5C1E86008D2C69 /* P2PShareViewFeedMessageCell.m in Sources */,
|
||||
886185C71EF228E100459AD1 /* FourControlName.m in Sources */,
|
||||
CBB0243523517947002900D5 /* NSString+MJExtension.m in Sources */,
|
||||
881672251EA5DE2B00BEBF23 /* UMComSelectTopicViewController.m in Sources */,
|
||||
3D1C5140221A9EE10096AE43 /* BootomViewSoketBackMasgConreol.m in Sources */,
|
||||
883E78601D48A5E50030E075 /* LeftViewController.m in Sources */,
|
||||
@@ -14665,9 +14683,11 @@
|
||||
8816723A1EA5DE2B00BEBF23 /* UMComSimpleCommentViewController.m in Sources */,
|
||||
3D1C17482171BB0700A159A8 /* PNRadarChartDataItem.m in Sources */,
|
||||
8871C44B1E6D2A93000AA49F /* QianDaoGongLueViewCell.m in Sources */,
|
||||
CBB0244223517947002900D5 /* MJPropertyType.m in Sources */,
|
||||
8871FAA41EBC0CE30038E99A /* ShopCerProgressHeaderView.m in Sources */,
|
||||
88602DBC1E10D97E00F3DB5D /* UIImage+WebP.m in Sources */,
|
||||
88F5EFD81D48D08100CC7CAF /* MMVectorImage.m in Sources */,
|
||||
CBB0243623517947002900D5 /* NSObject+MJProperty.m in Sources */,
|
||||
883E79B81D48B0280030E075 /* remindCyclePic.m in Sources */,
|
||||
88696FCF1E9C8872005D4AFB /* MemeberEditeViewCustomCell.m in Sources */,
|
||||
CB48204E2334D0A200A50C92 /* ConAquarChooseWiFiVC.m in Sources */,
|
||||
@@ -14702,10 +14722,8 @@
|
||||
881671D81EA5DE2B00BEBF23 /* UMComSysLikeTableViewCell.m in Sources */,
|
||||
887069531D4EE8A600BCF675 /* PopCell.m in Sources */,
|
||||
887491F31E7921E400CDA284 /* IfishInformationListViewCell.m in Sources */,
|
||||
3D8F64B22157522100F04BD3 /* MJPropertyType.m in Sources */,
|
||||
88613F781E5C31E6008D2C69 /* XuanYanCellHCaculator.m in Sources */,
|
||||
886FB18B1E5A977700256332 /* FishDoctorViewController.m in Sources */,
|
||||
3D8F64B32157522100F04BD3 /* NSObject+MJKeyValue.m in Sources */,
|
||||
887491EF1E79082300CDA284 /* MineGoldModel.m in Sources */,
|
||||
881671CF1EA5DE2B00BEBF23 /* UMComLocationView.m in Sources */,
|
||||
883E78811D48A5E50030E075 /* ChangeMobleController.m in Sources */,
|
||||
@@ -14749,7 +14767,6 @@
|
||||
883E76421D4897570030E075 /* TimerSateModel.m in Sources */,
|
||||
CB484CF922B8B0AC0075F050 /* GCDAsyncUdpSocket.m in Sources */,
|
||||
881869341D6FDD3B00CE9DFF /* ShopKanHuP2PViewController.m in Sources */,
|
||||
3D8F64B52157522100F04BD3 /* NSObject+MJCoding.m in Sources */,
|
||||
CBA6168C228F9AB100ED380D /* MASViewAttribute.m in Sources */,
|
||||
88602DB91E10D97E00F3DB5D /* UIButton+WebCache.m in Sources */,
|
||||
883E762F1D4897570030E075 /* TemperatureSetModel.m in Sources */,
|
||||
@@ -14762,6 +14779,7 @@
|
||||
3D1C50DF221A9EE00096AE43 /* MessageDAO.m in Sources */,
|
||||
88605F1C1D8256600037F1AA /* ShareReportCell.m in Sources */,
|
||||
881672051EA5DE2B00BEBF23 /* UMComSegmentedControl.m in Sources */,
|
||||
CBB0243B23517947002900D5 /* MJPropertyKey.m in Sources */,
|
||||
88F5EFC91D48D08100CC7CAF /* JHRefreshFooterView.m in Sources */,
|
||||
88645B161E83B7EC00234DB4 /* IfishInfoDetailContentViewCell.m in Sources */,
|
||||
404D7CEA2238CF77005655F5 /* UIViewController+Swizzling.m in Sources */,
|
||||
@@ -14784,7 +14802,6 @@
|
||||
883E76241D4897570030E075 /* DropViewModel.m in Sources */,
|
||||
8891330A1ECE999A00F52EBC /* IfishShopGoodsVideoRecordViewController.m in Sources */,
|
||||
88380DA91EB1A14900FC7C0D /* IfishGoodsManageViewController.m in Sources */,
|
||||
3D8F64BB2157522200F04BD3 /* MJFoundation.m in Sources */,
|
||||
8860D79D1D6D91A2001E544C /* ShopEditViewController.m in Sources */,
|
||||
886B80731D63112000E1B9B3 /* CertificationViewSecondCell.m in Sources */,
|
||||
881671C21EA5DE2B00BEBF23 /* UMComRequestTableViewController.m in Sources */,
|
||||
@@ -14917,6 +14934,7 @@
|
||||
88D0F27D1EA6F53E00286022 /* IfishSetViewController.m in Sources */,
|
||||
885FBDE41E4C3DE400E0D7D1 /* ShopNotCertifyViewCell.m in Sources */,
|
||||
8841D5BA1EE7A914007B0025 /* RunSunCHNameCustom.m in Sources */,
|
||||
CBB0243023517947002900D5 /* MJFoundation.m in Sources */,
|
||||
883E76451D4897570030E075 /* ZeroControlBackmsgModel.m in Sources */,
|
||||
889133041ECE999A00F52EBC /* ArtPlayerView.m in Sources */,
|
||||
881A1D371DD3025400BA1AF4 /* MineKankanEditViewController.m in Sources */,
|
||||
@@ -14927,6 +14945,7 @@
|
||||
88F5EFD01D48D08100CC7CAF /* MMLinearProgressView.m in Sources */,
|
||||
88F5EFAF1D48D08100CC7CAF /* AFURLRequestSerialization.m in Sources */,
|
||||
880707AA1DE2D53E0076F65A /* UITextView+AddKeybordDoneVIew.m in Sources */,
|
||||
CBB0243823517947002900D5 /* NSObject+MJCoding.m in Sources */,
|
||||
88F5EFC81D48D08100CC7CAF /* JHRefreshConfig.m in Sources */,
|
||||
880707F61DE302630076F65A /* LXColorTools.m in Sources */,
|
||||
3D1C50EE221A9EE00096AE43 /* PAIOUnit.m in Sources */,
|
||||
@@ -14947,6 +14966,7 @@
|
||||
8807074F1DDD42E60076F65A /* P2PShareViewTh3Cell.m in Sources */,
|
||||
CB484E1D22B8C8C90075F050 /* FfmpegInterface.m in Sources */,
|
||||
883E76411D4897570030E075 /* ThreeControlBackbackmsgModel.m in Sources */,
|
||||
CBB0243D23517947002900D5 /* MJExtensionConst.m in Sources */,
|
||||
886484161EE165ED0046C3BD /* RunSunChangeNameViewController.m in Sources */,
|
||||
88602DB01E10D97E00F3DB5D /* MKAnnotationView+WebCache.m in Sources */,
|
||||
8871C4461E6D2819000AA49F /* QianDaoWayTitleViewCell.m in Sources */,
|
||||
@@ -15009,6 +15029,7 @@
|
||||
883E78571D48A5E50030E075 /* JiaReWenDuModel.m in Sources */,
|
||||
883E76341D4897570030E075 /* backAppLoginModel.m in Sources */,
|
||||
887491CF1E77DA8A00CDA284 /* IfishMineGoldViewController.m in Sources */,
|
||||
CBB0242F23517947002900D5 /* MJProperty.m in Sources */,
|
||||
887B73381E235BDA00CECB73 /* JuNengProtocol.m in Sources */,
|
||||
3D3447A5212D1C3800CF3941 /* IfishHotBarVo.m in Sources */,
|
||||
881672191EA5DE2B00BEBF23 /* UMComSimpleHorizonMenuView.m in Sources */,
|
||||
@@ -15021,7 +15042,6 @@
|
||||
CB0F4E8922951A130091C76D /* SVProgressAnimatedView.m in Sources */,
|
||||
881671C31EA5DE2B00BEBF23 /* UMComViewController.m in Sources */,
|
||||
E567026D21187E7C00E61993 /* ConnectHotspotModel.m in Sources */,
|
||||
3D8F64B72157522100F04BD3 /* NSObject+MJProperty.m in Sources */,
|
||||
883E785D1D48A5E50030E075 /* XuToWenDuPicview.m in Sources */,
|
||||
CBA61682228F9AB100ED380D /* MASCompositeConstraint.m in Sources */,
|
||||
880707F51DE302630076F65A /* LXActionView.m in Sources */,
|
||||
@@ -15064,7 +15084,6 @@
|
||||
881671F91EA5DE2B00BEBF23 /* UMComMutiTextRun.m in Sources */,
|
||||
88C1B1F81DCB021300C2C99A /* FormatTankAddCamera.m in Sources */,
|
||||
8815D1211DF8083700BEA2DA /* IfishHelperUtils.m in Sources */,
|
||||
3D8F64B62157522100F04BD3 /* MJExtensionConst.m in Sources */,
|
||||
883E79BC1D48B0280030E075 /* BrightnessCell.m in Sources */,
|
||||
883E78381D48A5E50030E075 /* MorShopViewController.m in Sources */,
|
||||
881671A21EA5DE2B00BEBF23 /* UMComNoticeListDataController..m in Sources */,
|
||||
@@ -15100,7 +15119,6 @@
|
||||
3D1C50D7221A9EE00096AE43 /* CustomView.m in Sources */,
|
||||
886512001E972FDD00BABDF1 /* IfishUserDataUnity.m in Sources */,
|
||||
3D1C508F221A9EDF0096AE43 /* LoginResult.m in Sources */,
|
||||
3D8F64B42157522100F04BD3 /* MJProperty.m in Sources */,
|
||||
882A75FD1EBAF2DB00AD1D15 /* IfishShopCerNewViewController.m in Sources */,
|
||||
8816721E1EA5DE2B00BEBF23 /* UMComSimplicityUserInfoBar.m in Sources */,
|
||||
883E76251D4897570030E075 /* ChatroomModel.m in Sources */,
|
||||
@@ -15122,6 +15140,7 @@
|
||||
881671A71EA5DE2B00BEBF23 /* UMComTopicDataController.m in Sources */,
|
||||
881671F81EA5DE2B00BEBF23 /* UMComMutiText.m in Sources */,
|
||||
3D1C50A5221A9EDF0096AE43 /* CyclePickerView.m in Sources */,
|
||||
CBB0243423517947002900D5 /* NSObject+MJKeyValue.m in Sources */,
|
||||
883E762B1D4897570030E075 /* setModel.m in Sources */,
|
||||
CB48207B2334E99700A50C92 /* IQTextView.m in Sources */,
|
||||
881672151EA5DE2B00BEBF23 /* UMComSimpleCommentEditView.m in Sources */,
|
||||
@@ -15198,7 +15217,6 @@
|
||||
88602DB31E10D97E00F3DB5D /* SDWebImageCompat.m in Sources */,
|
||||
88C1B2C51DD19CE000C2C99A /* KankanListCollectionViewCell.m in Sources */,
|
||||
881A1D701DD5C46A00BA1AF4 /* KanKanListTableCell.m in Sources */,
|
||||
3D8F64B82157522200F04BD3 /* NSObject+MJClass.m in Sources */,
|
||||
881671D91EA5DE2B00BEBF23 /* UMComSysPrivateLetterCell.m in Sources */,
|
||||
883283611EAF21B500A47157 /* IfishGoldCoastViewController.m in Sources */,
|
||||
88696FB51E9C69B1005D4AFB /* MemberNanageListData.m in Sources */,
|
||||
@@ -15406,7 +15424,7 @@
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 10.1.3;
|
||||
CURRENT_PROJECT_VERSION = 10.1.7;
|
||||
DEVELOPMENT_TEAM = WFX8GD5HFX;
|
||||
ENABLE_BITCODE = NO;
|
||||
ENABLE_TESTABILITY = YES;
|
||||
@@ -15523,7 +15541,7 @@
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 10.1.3;
|
||||
CURRENT_PROJECT_VERSION = 10.1.7;
|
||||
DEVELOPMENT_TEAM = WFX8GD5HFX;
|
||||
ENABLE_BITCODE = NO;
|
||||
ENABLE_TESTABILITY = YES;
|
||||
|
||||
Binary file not shown.
@@ -8,7 +8,7 @@
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
#define ALICLOUDUTILS_VERSION @"1.3.6"
|
||||
#define ALICLOUDUTILS_VERSION @"1.3.7"
|
||||
|
||||
// In this header, you should import all the public headers of your framework using statements like #import <AlicloudUtils/PublicHeader.h>
|
||||
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
@property (nonatomic, copy, readonly) NSString *emasBundleId;
|
||||
@property (nonatomic, copy, readonly) NSString *hotfixIdSecret;
|
||||
@property (nonatomic, copy, readonly) NSString *hotfixRsaSecret;
|
||||
@property (nonatomic, copy, readonly) NSString *tlogRsaSecret;
|
||||
@property (nonatomic, copy, readonly) NSString *httpdnsAccountId;
|
||||
@property (nonatomic, copy, readonly) NSString *httpdnsSecretKey;
|
||||
|
||||
|
||||
@@ -1,54 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>config</key>
|
||||
<dict>
|
||||
<key>emas.appKey</key>
|
||||
<string>26007228</string>
|
||||
<key>emas.appSecret</key>
|
||||
<string>87c9206424399968ba11a56a9a979cfe</string>
|
||||
<key>emas.bundleId</key>
|
||||
<string>com.shyuying.Ifish8</string>
|
||||
<key>hotfix.idSecret</key>
|
||||
<string>26007228-2</string>
|
||||
<key>hotfix.rsaSecret</key>
|
||||
<string>MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDE/Dfk9Fy5WaLfhkAmCe9s1L6gh8ZIpwEetLtVUvTsIiGFei0lmn//GfPawGK104cr55P1+1zhXd5OyfIflo33WPb7KmByssbNW06AqAbDx83dtL21+eRXMvs4U+IbmrSY7GCs3/EJW9mPr6LKkF+K5n4AiQH7ecctGXY4XYomnFF83lutyTt7C5HfZb5cDbDkfOhA0UYse+WW3hs7nhgMOClFvoZelMd1PeciondG/cEfRRzbNdueiwVBQsGz7SLzrD5vnG5uyZrmPnCstc8ijKkimwvepadzjC11kE83M5XZyIwIPVOvXtKGBDQQgVLECmBmAp+72TySTt84ek51AgMBAAECggEATQDXjL3lnWMn4z8kxnntyVpk5nYNEguOyYUXEiSqr8Ar4HTBP0jlLkDj7ah1LeTxmz0cvvSy+zppk90ntCdzebSiX87SAyRVyKMfzfVhJ5lspXVpD8EO/PNl9z/7TJUucfU9WXb1T5ZDNwMOnSbQ4oh1yxnD151kOgIRD7mpLqwO7I/hh7axVZsNv8nVBT3eqydN4Eu32yBfFTClmNlSLBkz+c5FLhahKemYuHX0Nv9f7NG1p3x/Mh48LPas/Oy+YHOaYYW/AVgipRQxcjq2nDHBak37clzelF2adftWFPgy6gIO0n64mW7/ajAfMq72RCF1I3fIfgrvrBrKQ5dMYQKBgQDtTJJ9ykHuAbh16sok44tJgtAgIjWHQmIOB1EOXf1NaK8hT325dghohjb7DG6NqzIkM9ki60NCnGPREeaQ2JNWQzJxuzm3lFJsO3zHGfPZsZNRPM8nENial4y3AO4UDnvBWtT0nQ2ZdaxrDC4kZeHhnPj1SH32OWUBsGeNbHNeHQKBgQDUglPR5tgFsbgKbhoRSoO+ZY/z68pHmsR+SAlo+38qkstAT11RxCWxy/m3NyQ/Vd8RvbB7EcqAKSPQPLjArJF0iva9EzGnyJ4NtZcPCzJY0YdXhG9Lg6SSI1pln0tI9KyFBdd5WwDFdypRFKfpXesL4HkjhOmJpR0v/XfwQWyiOQKBgQCrhdyhVe//5Hh7q0GAFoVYllhv0apVYXNU5o79TozIRjHIZxfeVWXQf6sAHcVPW3470spRxjHw1PAFb+XzrsgY4yt0L7uRaYGGQB16INU09nkgkE6/0xpt67tHkEGGd82WPlyNj3QEB52gJsa3gnkaRgdh7Is3zdanuOWwwMJHNQKBgQDC0HdnBekjzziY1zaug1EjSpgdVRuraQaZfhCiXWzG6qvJ2PgD7X1g8U2L2NEx/tbwvKT9LeIme5CJZiE5APqXjI2F6AKtfgznJIHHGMye//bDFHWzFIvaLO7CGrY5u5Qsnp5ackLSw9vXWMhV9/Nyf+aN2Vr/BI8tX4CEkHW2gQKBgQCR5c+2oCPWgtXxwXoSk5yqs9yTzgtsiX0rlGSuaUpdRwKQvTqUex9SVXrPu+Hx2ZgaLm/XFVCmeftMteaWZ3NXQZyeKIVxpiQFlggCBHr5oaHqYvFZbCMCK8JN3w8EpRoiZxVpaqpdbMFHWxoqH64tmjKsNoB1CsRPnkGxo48Cnw==</string>
|
||||
<key>httpdns.accountId</key>
|
||||
<string>139960</string>
|
||||
<key>httpdns.secretKey</key>
|
||||
<string>9ff868c992944f68a2a8929bc09e9f41</string>
|
||||
</dict>
|
||||
<key>services</key>
|
||||
<dict>
|
||||
<key>httpdns_service</key>
|
||||
<dict>
|
||||
<key>status</key>
|
||||
<integer>1</integer>
|
||||
<key>version</key>
|
||||
<string>1.7.3</string>
|
||||
</dict>
|
||||
<key>cps_service</key>
|
||||
<dict>
|
||||
<key>status</key>
|
||||
<integer>1</integer>
|
||||
<key>version</key>
|
||||
<string>1.9.8</string>
|
||||
</dict>
|
||||
<key>feedback_service</key>
|
||||
<dict>
|
||||
<key>status</key>
|
||||
<integer>1</integer>
|
||||
<key>version</key>
|
||||
<string>3.3.6</string>
|
||||
</dict>
|
||||
<key>man_service</key>
|
||||
<dict>
|
||||
<key>status</key>
|
||||
<integer>0</integer>
|
||||
<key>version</key>
|
||||
<string>1.0.13</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</plist>
|
||||
Binary file not shown.
@@ -11,7 +11,7 @@
|
||||
#import "MPGerneralDefinition.h"
|
||||
|
||||
/* SDK版本号 */
|
||||
#define MPUSH_IOS_SDK_VERSION @"1.9.8"
|
||||
#define MPUSH_IOS_SDK_VERSION @"1.9.9"
|
||||
|
||||
@interface CloudPushSDK : NSObject
|
||||
|
||||
|
||||
@@ -24,6 +24,6 @@
|
||||
* pageEnter来处理,funcType=2101,则调用ctrlClicked处理
|
||||
*
|
||||
*/
|
||||
+(void) h5UT:(NSDictionary *) dataDict view:(UIWebView *) pView viewController:(UIViewController *) pViewController;
|
||||
+(void) h5UT:(NSDictionary *) dataDict view:(UIView *) pView viewController:(UIViewController *) pViewController;
|
||||
|
||||
@end
|
||||
|
||||
Binary file not shown.
+1
-1
@@ -70,7 +70,7 @@
|
||||
</dict>
|
||||
</array>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>10.1.5</string>
|
||||
<string>$(CURRENT_PROJECT_VERSION)</string>
|
||||
<key>ITSAppUsesNonExemptEncryption</key>
|
||||
<false/>
|
||||
<key>LSApplicationCategoryType</key>
|
||||
|
||||
@@ -102,6 +102,11 @@ Assign BOOL isGoChangeWiFi;//更换为设备的WiFi
|
||||
-(void)checkWiFi{
|
||||
NSDictionary *ifs = [self getSSIDInfo];
|
||||
NSString *wifiName = [ifs objectForKey:@"SSID"];
|
||||
//先判断之前的wifi名称是否和热点的wifi名称重复,如果冲突,则提示wifi名称错误
|
||||
if ([wifiName isEqualToString:self.wifiName]) {
|
||||
[self.view makeToast:@"请先连接设备热点"];
|
||||
return;
|
||||
}
|
||||
if ([wifiName rangeOfString:@"ifish"].location!=NSNotFound) {
|
||||
//wifi正确,则尝试连接设备
|
||||
ConnectingAquarVC *connecting = InitObject(ConnectingAquarVC);
|
||||
|
||||
@@ -112,7 +112,6 @@ Strong UIButton *nextBtn;
|
||||
_wifiPwdTextField.keyboardType = UIKeyboardTypeAlphabet;
|
||||
_wifiPwdTextField.delegate = self;
|
||||
_wifiPwdTextField.backgroundColor = XWhite;
|
||||
_wifiPwdTextField.secureTextEntry = YES;
|
||||
_wifiPwdTextField.layer.masksToBounds = YES;
|
||||
_wifiPwdTextField.layer.cornerRadius = kSizeFrom750(10);
|
||||
_wifiPwdTextField.leftViewMode = UITextFieldViewModeAlways;
|
||||
@@ -160,7 +159,7 @@ Strong UIButton *nextBtn;
|
||||
-(void)addContentLabel{
|
||||
|
||||
UILabel *preLabel;
|
||||
NSArray *textArr = @[@"1.选择信号较强的2.4G WiFi,将设备和手机尽量靠近路由器,正确填写WiFi密码即可快速让设备联备;",@"2.设备暂不支持5G WiFi,若已连接,请切换2.4G WiFi;",@"3.路由器不能开启如AP隔离、防蹭网、WLAN助手等限制WiFi接入的选项;",@"4.设备暂不支持WAP/WPA2 企业级WiFi,若已连接,请切换其他WiFi。"];
|
||||
NSArray *textArr = @[@"1.选择信号较强的2.4G WiFi,将设备和手机尽量靠近路由器,正确填写WiFi密码即可快速让设备联网;",@"2.设备暂不支持5G WiFi,若已连接,请切换2.4G WiFi;",@"3.路由器不能开启如AP隔离、防蹭网、WLAN助手等限制WiFi接入的选项;",@"4.设备暂不支持WAP/WPA2 企业级WiFi,若已连接,请切换其他WiFi。"];
|
||||
for (int i=3; i>=0; i--) {
|
||||
UILabel *label = InitObject(UILabel);
|
||||
label.text = textArr[i];
|
||||
|
||||
@@ -4,12 +4,24 @@
|
||||
//
|
||||
// Created by mj on 14-1-15.
|
||||
// Copyright (c) 2014年 小码哥. All rights reserved.
|
||||
// 代码地址:https://github.com/CoderMJLee/MJExtension
|
||||
// 代码地址:http://code4app.com/ios/%E5%AD%97%E5%85%B8-JSON-%E4%B8%8E%E6%A8%A1%E5%9E%8B%E7%9A%84%E8%BD%AC%E6%8D%A2/5339992a933bf062608b4c57
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import "NSObject+MJCoding.h"
|
||||
#import "NSObject+MJProperty.h"
|
||||
#import "NSObject+MJClass.h"
|
||||
#import "NSObject+MJKeyValue.h"
|
||||
#import "NSString+MJExtension.h"
|
||||
#import "MJExtensionConst.h"
|
||||
|
||||
#import "MJFoundation.h"
|
||||
|
||||
//! Project version number for MJExtension.
|
||||
FOUNDATION_EXPORT double MJExtensionVersionNumber;
|
||||
|
||||
//! Project version string for MJExtension.
|
||||
FOUNDATION_EXPORT const unsigned char MJExtensionVersionString[];
|
||||
|
||||
// In this header, you should import all the public headers of your framework using statements like #import <MJExtension/PublicHeader.h>
|
||||
|
||||
|
||||
|
||||
Regular → Executable
+43
-17
@@ -4,6 +4,25 @@
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
#ifndef MJ_LOCK
|
||||
#define MJ_LOCK(lock) dispatch_semaphore_wait(lock, DISPATCH_TIME_FOREVER);
|
||||
#endif
|
||||
|
||||
#ifndef MJ_UNLOCK
|
||||
#define MJ_UNLOCK(lock) dispatch_semaphore_signal(lock);
|
||||
#endif
|
||||
|
||||
// 信号量
|
||||
#define MJExtensionSemaphoreCreate \
|
||||
static dispatch_semaphore_t signalSemaphore; \
|
||||
static dispatch_once_t onceTokenSemaphore; \
|
||||
dispatch_once(&onceTokenSemaphore, ^{ \
|
||||
signalSemaphore = dispatch_semaphore_create(1); \
|
||||
});
|
||||
|
||||
#define MJExtensionSemaphoreWait MJ_LOCK(signalSemaphore)
|
||||
#define MJExtensionSemaphoreSignal MJ_UNLOCK(signalSemaphore)
|
||||
|
||||
// 过期
|
||||
#define MJExtensionDeprecated(instead) NS_DEPRECATED(2_0, 2_0, 2_0, 2_0, instead)
|
||||
|
||||
@@ -58,31 +77,38 @@ MJExtensionAssert2((param) != nil, returnValue)
|
||||
* 打印所有的属性
|
||||
*/
|
||||
#define MJLogAllIvars \
|
||||
-(NSString *)description \
|
||||
- (NSString *)description \
|
||||
{ \
|
||||
return [self mj_keyValues].description; \
|
||||
}
|
||||
#define MJExtensionLogAllProperties MJLogAllIvars
|
||||
|
||||
/** 仅在 Debugger 展示所有的属性 */
|
||||
#define MJImplementDebugDescription \
|
||||
- (NSString *)debugDescription \
|
||||
{ \
|
||||
return [self mj_keyValues].debugDescription; \
|
||||
}
|
||||
|
||||
/**
|
||||
* 类型(属性类型)
|
||||
*/
|
||||
extern NSString *const MJPropertyTypeInt;
|
||||
extern NSString *const MJPropertyTypeShort;
|
||||
extern NSString *const MJPropertyTypeFloat;
|
||||
extern NSString *const MJPropertyTypeDouble;
|
||||
extern NSString *const MJPropertyTypeLong;
|
||||
extern NSString *const MJPropertyTypeLongLong;
|
||||
extern NSString *const MJPropertyTypeChar;
|
||||
extern NSString *const MJPropertyTypeBOOL1;
|
||||
extern NSString *const MJPropertyTypeBOOL2;
|
||||
extern NSString *const MJPropertyTypePointer;
|
||||
FOUNDATION_EXPORT NSString *const MJPropertyTypeInt;
|
||||
FOUNDATION_EXPORT NSString *const MJPropertyTypeShort;
|
||||
FOUNDATION_EXPORT NSString *const MJPropertyTypeFloat;
|
||||
FOUNDATION_EXPORT NSString *const MJPropertyTypeDouble;
|
||||
FOUNDATION_EXPORT NSString *const MJPropertyTypeLong;
|
||||
FOUNDATION_EXPORT NSString *const MJPropertyTypeLongLong;
|
||||
FOUNDATION_EXPORT NSString *const MJPropertyTypeChar;
|
||||
FOUNDATION_EXPORT NSString *const MJPropertyTypeBOOL1;
|
||||
FOUNDATION_EXPORT NSString *const MJPropertyTypeBOOL2;
|
||||
FOUNDATION_EXPORT NSString *const MJPropertyTypePointer;
|
||||
|
||||
extern NSString *const MJPropertyTypeIvar;
|
||||
extern NSString *const MJPropertyTypeMethod;
|
||||
extern NSString *const MJPropertyTypeBlock;
|
||||
extern NSString *const MJPropertyTypeClass;
|
||||
extern NSString *const MJPropertyTypeSEL;
|
||||
extern NSString *const MJPropertyTypeId;
|
||||
FOUNDATION_EXPORT NSString *const MJPropertyTypeIvar;
|
||||
FOUNDATION_EXPORT NSString *const MJPropertyTypeMethod;
|
||||
FOUNDATION_EXPORT NSString *const MJPropertyTypeBlock;
|
||||
FOUNDATION_EXPORT NSString *const MJPropertyTypeClass;
|
||||
FOUNDATION_EXPORT NSString *const MJPropertyTypeSEL;
|
||||
FOUNDATION_EXPORT NSString *const MJPropertyTypeId;
|
||||
|
||||
#endif
|
||||
Regular → Executable
Regular → Executable
+3
@@ -9,5 +9,8 @@
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
@interface MJFoundation : NSObject
|
||||
|
||||
+ (BOOL)isClassFromFoundation:(Class)c;
|
||||
+ (BOOL)isFromNSObjectProtocolProperty:(NSString *)propertyName;
|
||||
|
||||
@end
|
||||
|
||||
Regular → Executable
+35
-13
@@ -9,16 +9,19 @@
|
||||
#import "MJFoundation.h"
|
||||
#import "MJExtensionConst.h"
|
||||
#import <CoreData/CoreData.h>
|
||||
|
||||
static NSSet *foundationClasses_;
|
||||
#import "objc/runtime.h"
|
||||
|
||||
@implementation MJFoundation
|
||||
|
||||
+ (NSSet *)foundationClasses
|
||||
+ (BOOL)isClassFromFoundation:(Class)c
|
||||
{
|
||||
if (foundationClasses_ == nil) {
|
||||
if (c == [NSObject class] || c == [NSManagedObject class]) return YES;
|
||||
|
||||
static NSSet *foundationClasses;
|
||||
static dispatch_once_t onceToken;
|
||||
dispatch_once(&onceToken, ^{
|
||||
// 集合中没有NSObject,因为几乎所有的类都是继承自NSObject,具体是不是NSObject需要特殊判断
|
||||
foundationClasses_ = [NSSet setWithObjects:
|
||||
foundationClasses = [NSSet setWithObjects:
|
||||
[NSURL class],
|
||||
[NSDate class],
|
||||
[NSValue class],
|
||||
@@ -28,16 +31,10 @@ static NSSet *foundationClasses_;
|
||||
[NSDictionary class],
|
||||
[NSString class],
|
||||
[NSAttributedString class], nil];
|
||||
}
|
||||
return foundationClasses_;
|
||||
}
|
||||
|
||||
+ (BOOL)isClassFromFoundation:(Class)c
|
||||
{
|
||||
if (c == [NSObject class] || c == [NSManagedObject class]) return YES;
|
||||
});
|
||||
|
||||
__block BOOL result = NO;
|
||||
[[self foundationClasses] enumerateObjectsUsingBlock:^(Class foundationClass, BOOL *stop) {
|
||||
[foundationClasses enumerateObjectsUsingBlock:^(Class foundationClass, BOOL *stop) {
|
||||
if ([c isSubclassOfClass:foundationClass]) {
|
||||
result = YES;
|
||||
*stop = YES;
|
||||
@@ -45,4 +42,29 @@ static NSSet *foundationClasses_;
|
||||
}];
|
||||
return result;
|
||||
}
|
||||
|
||||
+ (BOOL)isFromNSObjectProtocolProperty:(NSString *)propertyName
|
||||
{
|
||||
if (!propertyName) return NO;
|
||||
|
||||
static NSSet<NSString *> *objectProtocolPropertyNames;
|
||||
static dispatch_once_t onceToken;
|
||||
dispatch_once(&onceToken, ^{
|
||||
unsigned int count = 0;
|
||||
objc_property_t *propertyList = protocol_copyPropertyList(@protocol(NSObject), &count);
|
||||
NSMutableSet *propertyNames = [NSMutableSet setWithCapacity:count];
|
||||
for (int i = 0; i < count; i++) {
|
||||
objc_property_t property = propertyList[i];
|
||||
NSString *propertyName = [NSString stringWithCString:property_getName(property) encoding:NSUTF8StringEncoding];
|
||||
if (propertyName) {
|
||||
[propertyNames addObject:propertyName];
|
||||
}
|
||||
}
|
||||
objectProtocolPropertyNames = [propertyNames copy];
|
||||
free(propertyList);
|
||||
});
|
||||
|
||||
return [objectProtocolPropertyNames containsObject:propertyName];
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
Regular → Executable
Regular → Executable
+46
-5
@@ -10,10 +10,13 @@
|
||||
#import "MJFoundation.h"
|
||||
#import "MJExtensionConst.h"
|
||||
#import <objc/message.h>
|
||||
#include "TargetConditionals.h"
|
||||
|
||||
@interface MJProperty()
|
||||
@property (strong, nonatomic) NSMutableDictionary *propertyKeysDict;
|
||||
@property (strong, nonatomic) NSMutableDictionary *objectClassInArrayDict;
|
||||
@property (strong, nonatomic) dispatch_semaphore_t propertyKeysLock;
|
||||
@property (strong, nonatomic) dispatch_semaphore_t objectClassInArrayLock;
|
||||
@end
|
||||
|
||||
@implementation MJProperty
|
||||
@@ -24,6 +27,8 @@
|
||||
if (self = [super init]) {
|
||||
_propertyKeysDict = [NSMutableDictionary dictionary];
|
||||
_objectClassInArrayDict = [NSMutableDictionary dictionary];
|
||||
_propertyKeysLock = dispatch_semaphore_create(1);
|
||||
_objectClassInArrayLock = dispatch_semaphore_create(1);
|
||||
}
|
||||
return self;
|
||||
}
|
||||
@@ -69,7 +74,19 @@
|
||||
- (id)valueForObject:(id)object
|
||||
{
|
||||
if (self.type.KVCDisabled) return [NSNull null];
|
||||
return [object valueForKey:self.name];
|
||||
|
||||
id value = [object valueForKey:self.name];
|
||||
|
||||
// 32位BOOL类型转换json后成Int类型
|
||||
/** https://github.com/CoderMJLee/MJExtension/issues/545 */
|
||||
// 32 bit device OR 32 bit Simulator
|
||||
#if defined(__arm__) || (TARGET_OS_SIMULATOR && !__LP64__)
|
||||
if (self.type.isBoolType) {
|
||||
value = @([(NSNumber *)value boolValue]);
|
||||
}
|
||||
#endif
|
||||
|
||||
return value;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -150,21 +167,45 @@
|
||||
- (void)setPorpertyKeys:(NSArray *)propertyKeys forClass:(Class)c
|
||||
{
|
||||
if (propertyKeys.count == 0) return;
|
||||
self.propertyKeysDict[NSStringFromClass(c)] = propertyKeys;
|
||||
NSString *key = NSStringFromClass(c);
|
||||
if (!key) return;
|
||||
|
||||
MJ_LOCK(self.propertyKeysLock);
|
||||
self.propertyKeysDict[key] = propertyKeys;
|
||||
MJ_UNLOCK(self.propertyKeysLock);
|
||||
}
|
||||
|
||||
- (NSArray *)propertyKeysForClass:(Class)c
|
||||
{
|
||||
return self.propertyKeysDict[NSStringFromClass(c)];
|
||||
NSString *key = NSStringFromClass(c);
|
||||
if (!key) return nil;
|
||||
|
||||
MJ_LOCK(self.propertyKeysLock);
|
||||
NSArray *propertyKeys = self.propertyKeysDict[key];
|
||||
MJ_UNLOCK(self.propertyKeysLock);
|
||||
return propertyKeys;
|
||||
}
|
||||
|
||||
/** 模型数组中的模型类型 */
|
||||
- (void)setObjectClassInArray:(Class)objectClass forClass:(Class)c
|
||||
{
|
||||
if (!objectClass) return;
|
||||
self.objectClassInArrayDict[NSStringFromClass(c)] = objectClass;
|
||||
NSString *key = NSStringFromClass(c);
|
||||
if (!key) return;
|
||||
|
||||
MJ_LOCK(self.objectClassInArrayLock);
|
||||
self.objectClassInArrayDict[key] = objectClass;
|
||||
MJ_UNLOCK(self.objectClassInArrayLock);
|
||||
}
|
||||
|
||||
- (Class)objectClassInArrayForClass:(Class)c
|
||||
{
|
||||
return self.objectClassInArrayDict[NSStringFromClass(c)];
|
||||
NSString *key = NSStringFromClass(c);
|
||||
if (!key) return nil;
|
||||
|
||||
MJ_LOCK(self.objectClassInArrayLock);
|
||||
Class objectClass = self.objectClassInArrayDict[key];
|
||||
MJ_UNLOCK(self.objectClassInArrayLock);
|
||||
return objectClass;
|
||||
}
|
||||
@end
|
||||
|
||||
Regular → Executable
Regular → Executable
@@ -13,24 +13,23 @@
|
||||
|
||||
@implementation MJPropertyType
|
||||
|
||||
static NSMutableDictionary *types_;
|
||||
+ (void)initialize
|
||||
{
|
||||
types_ = [NSMutableDictionary dictionary];
|
||||
}
|
||||
|
||||
+ (instancetype)cachedTypeWithCode:(NSString *)code
|
||||
{
|
||||
MJExtensionAssertParamNotNil2(code, nil);
|
||||
@synchronized (self) {
|
||||
MJPropertyType *type = types_[code];
|
||||
|
||||
static NSMutableDictionary *types;
|
||||
static dispatch_once_t onceToken;
|
||||
dispatch_once(&onceToken, ^{
|
||||
types = [NSMutableDictionary dictionary];
|
||||
});
|
||||
|
||||
MJPropertyType *type = types[code];
|
||||
if (type == nil) {
|
||||
type = [[self alloc] init];
|
||||
type.code = code;
|
||||
types_[code] = type;
|
||||
types[code] = type;
|
||||
}
|
||||
return type;
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark - 公共方法
|
||||
|
||||
Regular → Executable
+5
-5
@@ -14,14 +14,14 @@
|
||||
typedef void (^MJClassesEnumeration)(Class c, BOOL *stop);
|
||||
|
||||
/** 这个数组中的属性名才会进行字典和模型的转换 */
|
||||
typedef NSArray * (^MJAllowedPropertyNames)();
|
||||
typedef NSArray * (^MJAllowedPropertyNames)(void);
|
||||
/** 这个数组中的属性名才会进行归档 */
|
||||
typedef NSArray * (^MJAllowedCodingPropertyNames)();
|
||||
typedef NSArray * (^MJAllowedCodingPropertyNames)(void);
|
||||
|
||||
/** 这个数组中的属性名将会被忽略:不进行字典和模型的转换 */
|
||||
typedef NSArray * (^MJIgnoredPropertyNames)();
|
||||
typedef NSArray * (^MJIgnoredPropertyNames)(void);
|
||||
/** 这个数组中的属性名将会被忽略:不进行归档 */
|
||||
typedef NSArray * (^MJIgnoredCodingPropertyNames)();
|
||||
typedef NSArray * (^MJIgnoredCodingPropertyNames)(void);
|
||||
|
||||
/**
|
||||
* 类相关的扩展
|
||||
@@ -86,5 +86,5 @@ typedef NSArray * (^MJIgnoredCodingPropertyNames)();
|
||||
+ (NSMutableArray *)mj_totalIgnoredCodingPropertyNames;
|
||||
|
||||
#pragma mark - 内部使用
|
||||
+ (void)mj_setupBlockReturnValue:(id (^)())block key:(const char *)key;
|
||||
+ (void)mj_setupBlockReturnValue:(id (^)(void))block key:(const char *)key;
|
||||
@end
|
||||
|
||||
Regular → Executable
+30
-25
@@ -17,30 +17,28 @@ static const char MJIgnoredPropertyNamesKey = '\0';
|
||||
static const char MJAllowedCodingPropertyNamesKey = '\0';
|
||||
static const char MJIgnoredCodingPropertyNamesKey = '\0';
|
||||
|
||||
static NSMutableDictionary *allowedPropertyNamesDict_;
|
||||
static NSMutableDictionary *ignoredPropertyNamesDict_;
|
||||
static NSMutableDictionary *allowedCodingPropertyNamesDict_;
|
||||
static NSMutableDictionary *ignoredCodingPropertyNamesDict_;
|
||||
|
||||
@implementation NSObject (MJClass)
|
||||
|
||||
+ (void)load
|
||||
+ (NSMutableDictionary *)mj_classDictForKey:(const void *)key
|
||||
{
|
||||
allowedPropertyNamesDict_ = [NSMutableDictionary dictionary];
|
||||
ignoredPropertyNamesDict_ = [NSMutableDictionary dictionary];
|
||||
allowedCodingPropertyNamesDict_ = [NSMutableDictionary dictionary];
|
||||
ignoredCodingPropertyNamesDict_ = [NSMutableDictionary dictionary];
|
||||
}
|
||||
static NSMutableDictionary *allowedPropertyNamesDict;
|
||||
static NSMutableDictionary *ignoredPropertyNamesDict;
|
||||
static NSMutableDictionary *allowedCodingPropertyNamesDict;
|
||||
static NSMutableDictionary *ignoredCodingPropertyNamesDict;
|
||||
|
||||
+ (NSMutableDictionary *)dictForKey:(const void *)key
|
||||
{
|
||||
@synchronized (self) {
|
||||
if (key == &MJAllowedPropertyNamesKey) return allowedPropertyNamesDict_;
|
||||
if (key == &MJIgnoredPropertyNamesKey) return ignoredPropertyNamesDict_;
|
||||
if (key == &MJAllowedCodingPropertyNamesKey) return allowedCodingPropertyNamesDict_;
|
||||
if (key == &MJIgnoredCodingPropertyNamesKey) return ignoredCodingPropertyNamesDict_;
|
||||
static dispatch_once_t onceToken;
|
||||
dispatch_once(&onceToken, ^{
|
||||
allowedPropertyNamesDict = [NSMutableDictionary dictionary];
|
||||
ignoredPropertyNamesDict = [NSMutableDictionary dictionary];
|
||||
allowedCodingPropertyNamesDict = [NSMutableDictionary dictionary];
|
||||
ignoredCodingPropertyNamesDict = [NSMutableDictionary dictionary];
|
||||
});
|
||||
|
||||
if (key == &MJAllowedPropertyNamesKey) return allowedPropertyNamesDict;
|
||||
if (key == &MJIgnoredPropertyNamesKey) return ignoredPropertyNamesDict;
|
||||
if (key == &MJAllowedCodingPropertyNamesKey) return allowedCodingPropertyNamesDict;
|
||||
if (key == &MJIgnoredCodingPropertyNamesKey) return ignoredCodingPropertyNamesDict;
|
||||
return nil;
|
||||
}
|
||||
}
|
||||
|
||||
+ (void)mj_enumerateClasses:(MJClassesEnumeration)enumeration
|
||||
@@ -130,8 +128,9 @@ static NSMutableDictionary *ignoredCodingPropertyNamesDict_;
|
||||
{
|
||||
return [self mj_totalObjectsWithSelector:@selector(mj_allowedCodingPropertyNames) key:&MJAllowedCodingPropertyNamesKey];
|
||||
}
|
||||
|
||||
#pragma mark - block和方法处理:存储block的返回值
|
||||
+ (void)mj_setupBlockReturnValue:(id (^)())block key:(const char *)key
|
||||
+ (void)mj_setupBlockReturnValue:(id (^)(void))block key:(const char *)key
|
||||
{
|
||||
if (block) {
|
||||
objc_setAssociatedObject(self, key, block(), OBJC_ASSOCIATION_RETAIN_NONATOMIC);
|
||||
@@ -140,16 +139,20 @@ static NSMutableDictionary *ignoredCodingPropertyNamesDict_;
|
||||
}
|
||||
|
||||
// 清空数据
|
||||
[[self dictForKey:key] removeAllObjects];
|
||||
MJExtensionSemaphoreCreate
|
||||
MJExtensionSemaphoreWait
|
||||
[[self mj_classDictForKey:key] removeAllObjects];
|
||||
MJExtensionSemaphoreSignal
|
||||
}
|
||||
|
||||
+ (NSMutableArray *)mj_totalObjectsWithSelector:(SEL)selector key:(const char *)key
|
||||
{
|
||||
NSMutableArray *array = [self dictForKey:key][NSStringFromClass(self)];
|
||||
if (array) return array;
|
||||
|
||||
MJExtensionSemaphoreCreate
|
||||
MJExtensionSemaphoreWait
|
||||
NSMutableArray *array = [self mj_classDictForKey:key][NSStringFromClass(self)];
|
||||
if (array == nil) {
|
||||
// 创建、存储
|
||||
[self dictForKey:key][NSStringFromClass(self)] = array = [NSMutableArray array];
|
||||
[self mj_classDictForKey:key][NSStringFromClass(self)] = array = [NSMutableArray array];
|
||||
|
||||
if ([self respondsToSelector:selector]) {
|
||||
#pragma clang diagnostic push
|
||||
@@ -165,6 +168,8 @@ static NSMutableDictionary *ignoredCodingPropertyNamesDict_;
|
||||
NSArray *subArray = objc_getAssociatedObject(c, key);
|
||||
[array addObjectsFromArray:subArray];
|
||||
}];
|
||||
}
|
||||
MJExtensionSemaphoreSignal
|
||||
return array;
|
||||
}
|
||||
@end
|
||||
|
||||
@@ -47,6 +47,10 @@
|
||||
*/
|
||||
+ (NSDictionary *)mj_objectClassInArray;
|
||||
|
||||
|
||||
/** 特殊地区在字符串格式化数字时使用 */
|
||||
+ (NSLocale *)mj_numberLocale;
|
||||
|
||||
/**
|
||||
* 旧值换新值,用于过滤字典中的值
|
||||
*
|
||||
@@ -59,12 +63,16 @@
|
||||
/**
|
||||
* 当字典转模型完毕时调用
|
||||
*/
|
||||
- (void)mj_keyValuesDidFinishConvertingToObject;
|
||||
- (void)mj_keyValuesDidFinishConvertingToObject MJExtensionDeprecated("请使用`mj_didConvertToObjectWithKeyValues:`替代");
|
||||
- (void)mj_keyValuesDidFinishConvertingToObject:(NSDictionary *)keyValues MJExtensionDeprecated("请使用`mj_didConvertToObjectWithKeyValues:`替代");
|
||||
- (void)mj_didConvertToObjectWithKeyValues:(NSDictionary *)keyValues;
|
||||
|
||||
/**
|
||||
* 当模型转字典完毕时调用
|
||||
*/
|
||||
- (void)mj_objectDidFinishConvertingToKeyValues;
|
||||
- (void)mj_objectDidFinishConvertingToKeyValues MJExtensionDeprecated("请使用`mj_objectDidConvertToKeyValues:`替代");
|
||||
- (void)mj_objectDidConvertToKeyValues:(NSDictionary *)keyValues;
|
||||
|
||||
@end
|
||||
|
||||
@interface NSObject (MJKeyValue) <MJKeyValue>
|
||||
@@ -184,42 +192,3 @@
|
||||
*/
|
||||
- (NSString *)mj_JSONString;
|
||||
@end
|
||||
|
||||
@interface NSObject (MJKeyValueDeprecated_v_2_5_16)
|
||||
- (instancetype)setKeyValues:(id)keyValue MJExtensionDeprecated("请在方法名前面加上mj_前缀,使用mj_***");
|
||||
- (instancetype)setKeyValues:(id)keyValues error:(NSError **)error MJExtensionDeprecated("请在方法名前面加上mj_前缀,使用mj_***");
|
||||
- (instancetype)setKeyValues:(id)keyValues context:(NSManagedObjectContext *)context MJExtensionDeprecated("请在方法名前面加上mj_前缀,使用mj_***");
|
||||
- (instancetype)setKeyValues:(id)keyValues context:(NSManagedObjectContext *)context error:(NSError **)error MJExtensionDeprecated("请在方法名前面加上mj_前缀,使用mj_***");
|
||||
+ (void)referenceReplacedKeyWhenCreatingKeyValues:(BOOL)reference MJExtensionDeprecated("请在方法名前面加上mj_前缀,使用mj_***");
|
||||
- (NSMutableDictionary *)keyValues MJExtensionDeprecated("请在方法名前面加上mj_前缀,使用mj_***");
|
||||
- (NSMutableDictionary *)keyValuesWithError:(NSError **)error MJExtensionDeprecated("请在方法名前面加上mj_前缀,使用mj_***");
|
||||
- (NSMutableDictionary *)keyValuesWithKeys:(NSArray *)keys MJExtensionDeprecated("请在方法名前面加上mj_前缀,使用mj_***");
|
||||
- (NSMutableDictionary *)keyValuesWithKeys:(NSArray *)keys error:(NSError **)error MJExtensionDeprecated("请在方法名前面加上mj_前缀,使用mj_***");
|
||||
- (NSMutableDictionary *)keyValuesWithIgnoredKeys:(NSArray *)ignoredKeys MJExtensionDeprecated("请在方法名前面加上mj_前缀,使用mj_***");
|
||||
- (NSMutableDictionary *)keyValuesWithIgnoredKeys:(NSArray *)ignoredKeys error:(NSError **)error MJExtensionDeprecated("请在方法名前面加上mj_前缀,使用mj_***");
|
||||
+ (NSMutableArray *)keyValuesArrayWithObjectArray:(NSArray *)objectArray MJExtensionDeprecated("请在方法名前面加上mj_前缀,使用mj_***");
|
||||
+ (NSMutableArray *)keyValuesArrayWithObjectArray:(NSArray *)objectArray error:(NSError **)error MJExtensionDeprecated("请在方法名前面加上mj_前缀,使用mj_***");
|
||||
+ (NSMutableArray *)keyValuesArrayWithObjectArray:(NSArray *)objectArray keys:(NSArray *)keys MJExtensionDeprecated("请在方法名前面加上mj_前缀,使用mj_***");
|
||||
+ (NSMutableArray *)keyValuesArrayWithObjectArray:(NSArray *)objectArray keys:(NSArray *)keys error:(NSError **)error MJExtensionDeprecated("请在方法名前面加上mj_前缀,使用mj_***");
|
||||
+ (NSMutableArray *)keyValuesArrayWithObjectArray:(NSArray *)objectArray ignoredKeys:(NSArray *)ignoredKeys MJExtensionDeprecated("请在方法名前面加上mj_前缀,使用mj_***");
|
||||
+ (NSMutableArray *)keyValuesArrayWithObjectArray:(NSArray *)objectArray ignoredKeys:(NSArray *)ignoredKeys error:(NSError **)error MJExtensionDeprecated("请在方法名前面加上mj_前缀,使用mj_***");
|
||||
+ (instancetype)objectWithKeyValues:(id)keyValues MJExtensionDeprecated("请在方法名前面加上mj_前缀,使用mj_***");
|
||||
+ (instancetype)objectWithKeyValues:(id)keyValues error:(NSError **)error MJExtensionDeprecated("请在方法名前面加上mj_前缀,使用mj_***");
|
||||
+ (instancetype)objectWithKeyValues:(id)keyValues context:(NSManagedObjectContext *)context MJExtensionDeprecated("请在方法名前面加上mj_前缀,使用mj_***");
|
||||
+ (instancetype)objectWithKeyValues:(id)keyValues context:(NSManagedObjectContext *)context error:(NSError **)error MJExtensionDeprecated("请在方法名前面加上mj_前缀,使用mj_***");
|
||||
+ (instancetype)objectWithFilename:(NSString *)filename MJExtensionDeprecated("请在方法名前面加上mj_前缀,使用mj_***");
|
||||
+ (instancetype)objectWithFilename:(NSString *)filename error:(NSError **)error MJExtensionDeprecated("请在方法名前面加上mj_前缀,使用mj_***");
|
||||
+ (instancetype)objectWithFile:(NSString *)file MJExtensionDeprecated("请在方法名前面加上mj_前缀,使用mj_***");
|
||||
+ (instancetype)objectWithFile:(NSString *)file error:(NSError **)error MJExtensionDeprecated("请在方法名前面加上mj_前缀,使用mj_***");
|
||||
+ (NSMutableArray *)objectArrayWithKeyValuesArray:(id)keyValuesArray MJExtensionDeprecated("请在方法名前面加上mj_前缀,使用mj_***");
|
||||
+ (NSMutableArray *)objectArrayWithKeyValuesArray:(id)keyValuesArray error:(NSError **)error MJExtensionDeprecated("请在方法名前面加上mj_前缀,使用mj_***");
|
||||
+ (NSMutableArray *)objectArrayWithKeyValuesArray:(id)keyValuesArray context:(NSManagedObjectContext *)context MJExtensionDeprecated("请在方法名前面加上mj_前缀,使用mj_***");
|
||||
+ (NSMutableArray *)objectArrayWithKeyValuesArray:(id)keyValuesArray context:(NSManagedObjectContext *)context error:(NSError **)error MJExtensionDeprecated("请在方法名前面加上mj_前缀,使用mj_***");
|
||||
+ (NSMutableArray *)objectArrayWithFilename:(NSString *)filename MJExtensionDeprecated("请在方法名前面加上mj_前缀,使用mj_***");
|
||||
+ (NSMutableArray *)objectArrayWithFilename:(NSString *)filename error:(NSError **)error MJExtensionDeprecated("请在方法名前面加上mj_前缀,使用mj_***");
|
||||
+ (NSMutableArray *)objectArrayWithFile:(NSString *)file MJExtensionDeprecated("请在方法名前面加上mj_前缀,使用mj_***");
|
||||
+ (NSMutableArray *)objectArrayWithFile:(NSString *)file error:(NSError **)error MJExtensionDeprecated("请在方法名前面加上mj_前缀,使用mj_***");
|
||||
- (NSData *)JSONData MJExtensionDeprecated("请在方法名前面加上mj_前缀,使用mj_***");
|
||||
- (id)JSONObject MJExtensionDeprecated("请在方法名前面加上mj_前缀,使用mj_***");
|
||||
- (NSString *)JSONString MJExtensionDeprecated("请在方法名前面加上mj_前缀,使用mj_***");
|
||||
@end
|
||||
|
||||
@@ -16,6 +16,26 @@
|
||||
#import "NSString+MJExtension.h"
|
||||
#import "NSObject+MJClass.h"
|
||||
|
||||
@implementation NSDecimalNumber(MJKeyValue)
|
||||
|
||||
- (id)standardValueWithTypeCode:(NSString *)typeCode {
|
||||
// 由于这里涉及到编译器问题, 暂时保留 Long, 实际上在 64 位系统上, 这 2 个精度范围相同,
|
||||
// 32 位略有不同, 其余都可使用 Double 进行强转不丢失精度
|
||||
if ([typeCode isEqualToString:MJPropertyTypeLongLong]) {
|
||||
return @(self.longLongValue);
|
||||
} else if ([typeCode isEqualToString:MJPropertyTypeLongLong.uppercaseString]) {
|
||||
return @(self.unsignedLongLongValue);
|
||||
} else if ([typeCode isEqualToString:MJPropertyTypeLong]) {
|
||||
return @(self.longValue);
|
||||
} else if ([typeCode isEqualToString:MJPropertyTypeLong.uppercaseString]) {
|
||||
return @(self.unsignedLongValue);
|
||||
} else {
|
||||
return @(self.doubleValue);
|
||||
}
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@implementation NSObject (MJKeyValue)
|
||||
|
||||
#pragma mark - 错误
|
||||
@@ -53,11 +73,8 @@ static const char MJReferenceReplacedKeyWhenCreatingKeyValuesKey = '\0';
|
||||
}
|
||||
|
||||
#pragma mark - --常用的对象--
|
||||
static NSNumberFormatter *numberFormatter_;
|
||||
+ (void)load
|
||||
{
|
||||
numberFormatter_ = [[NSNumberFormatter alloc] init];
|
||||
|
||||
// 默认设置
|
||||
[self mj_referenceReplacedKeyWhenCreatingKeyValues:YES];
|
||||
}
|
||||
@@ -83,6 +100,11 @@ static NSNumberFormatter *numberFormatter_;
|
||||
NSArray *allowedPropertyNames = [clazz mj_totalAllowedPropertyNames];
|
||||
NSArray *ignoredPropertyNames = [clazz mj_totalIgnoredPropertyNames];
|
||||
|
||||
NSLocale *numberLocale = nil;
|
||||
if ([self.class respondsToSelector:@selector(mj_numberLocale)]) {
|
||||
numberLocale = self.class.mj_numberLocale;
|
||||
}
|
||||
|
||||
//通过封装的方法回调一个通过运行时编写的,用于返回属性列表的方法。
|
||||
[clazz mj_enumerateProperties:^(MJProperty *property, BOOL *stop) {
|
||||
@try {
|
||||
@@ -141,8 +163,7 @@ static NSNumberFormatter *numberFormatter_;
|
||||
} else { // 字典数组-->模型数组
|
||||
value = [objectClass mj_objectArrayWithKeyValuesArray:value context:context];
|
||||
}
|
||||
} else {
|
||||
if (propertyClass == [NSString class]) {
|
||||
} else if (propertyClass == [NSString class]) {
|
||||
if ([value isKindOfClass:[NSNumber class]]) {
|
||||
// NSNumber -> NSString
|
||||
value = [value description];
|
||||
@@ -158,11 +179,17 @@ static NSNumberFormatter *numberFormatter_;
|
||||
} else if (type.isNumberType) {
|
||||
NSString *oldValue = value;
|
||||
|
||||
// NSString -> NSNumber
|
||||
if (type.typeClass == [NSDecimalNumber class]) {
|
||||
value = [NSDecimalNumber decimalNumberWithString:oldValue];
|
||||
// NSString -> NSDecimalNumber, 使用 DecimalNumber 来转换数字, 避免丢失精度以及溢出
|
||||
NSDecimalNumber *decimalValue = [NSDecimalNumber decimalNumberWithString:oldValue
|
||||
locale:numberLocale];
|
||||
|
||||
// 检查特殊情况
|
||||
if (decimalValue == NSDecimalNumber.notANumber) {
|
||||
value = @(0);
|
||||
}else if (propertyClass != [NSDecimalNumber class]) {
|
||||
value = [decimalValue standardValueWithTypeCode:type.code];
|
||||
} else {
|
||||
value = [numberFormatter_ numberFromString:oldValue];
|
||||
value = decimalValue;
|
||||
}
|
||||
|
||||
// 如果是BOOL
|
||||
@@ -177,13 +204,17 @@ static NSNumberFormatter *numberFormatter_;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if ([value isKindOfClass:[NSNumber class]] && propertyClass == [NSDecimalNumber class]){
|
||||
// 过滤 NSDecimalNumber类型
|
||||
if (![value isKindOfClass:[NSDecimalNumber class]]) {
|
||||
value = [NSDecimalNumber decimalNumberWithDecimal:[((NSNumber *)value) decimalValue]];
|
||||
}
|
||||
}
|
||||
|
||||
// value和property类型不匹配
|
||||
// 经过转换后, 最终检查 value 与 property 是否匹配
|
||||
if (propertyClass && ![value isKindOfClass:propertyClass]) {
|
||||
value = nil;
|
||||
}
|
||||
}
|
||||
|
||||
// 3.赋值
|
||||
[property setValue:value forObject:self];
|
||||
@@ -194,9 +225,18 @@ static NSNumberFormatter *numberFormatter_;
|
||||
}];
|
||||
|
||||
// 转换完毕
|
||||
if ([self respondsToSelector:@selector(mj_didConvertToObjectWithKeyValues:)]) {
|
||||
[self mj_didConvertToObjectWithKeyValues:keyValues];
|
||||
}
|
||||
#pragma clang diagnostic push
|
||||
#pragma clang diagnostic ignored"-Wdeprecated-declarations"
|
||||
if ([self respondsToSelector:@selector(mj_keyValuesDidFinishConvertingToObject)]) {
|
||||
[self mj_keyValuesDidFinishConvertingToObject];
|
||||
}
|
||||
if ([self respondsToSelector:@selector(mj_keyValuesDidFinishConvertingToObject:)]) {
|
||||
[self mj_keyValuesDidFinishConvertingToObject:keyValues];
|
||||
}
|
||||
#pragma clang diagnostic pop
|
||||
return self;
|
||||
}
|
||||
|
||||
@@ -299,6 +339,11 @@ static NSNumberFormatter *numberFormatter_;
|
||||
- (NSMutableDictionary *)mj_keyValuesWithKeys:(NSArray *)keys ignoredKeys:(NSArray *)ignoredKeys
|
||||
{
|
||||
// 如果自己不是模型类, 那就返回自己
|
||||
// 模型类过滤掉 NSNull
|
||||
// 唯一一个不返回自己的
|
||||
if ([self isMemberOfClass:NSNull.class]) { return nil; }
|
||||
// 这里虽然返回了自己, 但是其实是有报错信息的.
|
||||
// TODO: 报错机制不好, 需要重做
|
||||
MJExtensionAssertError(![MJFoundation isClassFromFoundation:[self class]], (NSMutableDictionary *)self, [self class], @"不是自定义的模型类")
|
||||
|
||||
id keyValues = [NSMutableDictionary dictionary];
|
||||
@@ -387,9 +432,15 @@ static NSNumberFormatter *numberFormatter_;
|
||||
}];
|
||||
|
||||
// 转换完毕
|
||||
if ([self respondsToSelector:@selector(mj_objectDidConvertToKeyValues:)]) {
|
||||
[self mj_objectDidConvertToKeyValues:keyValues];
|
||||
}
|
||||
#pragma clang diagnostic push
|
||||
#pragma clang diagnostic ignored"-Wdeprecated-declarations"
|
||||
if ([self respondsToSelector:@selector(mj_objectDidFinishConvertingToKeyValues)]) {
|
||||
[self mj_objectDidFinishConvertingToKeyValues];
|
||||
}
|
||||
#pragma clang diagnostic pop
|
||||
|
||||
return keyValues;
|
||||
}
|
||||
@@ -418,9 +469,13 @@ static NSNumberFormatter *numberFormatter_;
|
||||
NSMutableArray *keyValuesArray = [NSMutableArray array];
|
||||
for (id object in objectArray) {
|
||||
if (keys) {
|
||||
[keyValuesArray addObject:[object mj_keyValuesWithKeys:keys]];
|
||||
id convertedObj = [object mj_keyValuesWithKeys:keys];
|
||||
if (!convertedObj) { continue; }
|
||||
[keyValuesArray addObject:convertedObj];
|
||||
} else {
|
||||
[keyValuesArray addObject:[object mj_keyValuesWithIgnoredKeys:ignoredKeys]];
|
||||
id convertedObj = [object mj_keyValuesWithIgnoredKeys:ignoredKeys];
|
||||
if (!convertedObj) { continue; }
|
||||
[keyValuesArray addObject:convertedObj];
|
||||
}
|
||||
}
|
||||
return keyValuesArray;
|
||||
@@ -459,251 +514,5 @@ static NSNumberFormatter *numberFormatter_;
|
||||
|
||||
return [[NSString alloc] initWithData:[self mj_JSONData] encoding:NSUTF8StringEncoding];
|
||||
}
|
||||
@end
|
||||
|
||||
@implementation NSObject (MJKeyValueDeprecated_v_2_5_16)
|
||||
- (instancetype)setKeyValues:(id)keyValues
|
||||
{
|
||||
return [self mj_setKeyValues:keyValues];
|
||||
}
|
||||
|
||||
- (instancetype)setKeyValues:(id)keyValues error:(NSError **)error
|
||||
{
|
||||
id value = [self mj_setKeyValues:keyValues];
|
||||
if (error != NULL) {
|
||||
*error = [self.class mj_error];
|
||||
}
|
||||
return value;
|
||||
|
||||
}
|
||||
|
||||
- (instancetype)setKeyValues:(id)keyValues context:(NSManagedObjectContext *)context
|
||||
{
|
||||
return [self mj_setKeyValues:keyValues context:context];
|
||||
}
|
||||
|
||||
- (instancetype)setKeyValues:(id)keyValues context:(NSManagedObjectContext *)context error:(NSError **)error
|
||||
{
|
||||
id value = [self mj_setKeyValues:keyValues context:context];
|
||||
if (error != NULL) {
|
||||
*error = [self.class mj_error];
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
+ (void)referenceReplacedKeyWhenCreatingKeyValues:(BOOL)reference
|
||||
{
|
||||
[self mj_referenceReplacedKeyWhenCreatingKeyValues:reference];
|
||||
}
|
||||
|
||||
- (NSMutableDictionary *)keyValues
|
||||
{
|
||||
return [self mj_keyValues];
|
||||
}
|
||||
|
||||
- (NSMutableDictionary *)keyValuesWithError:(NSError **)error
|
||||
{
|
||||
id value = [self mj_keyValues];
|
||||
if (error != NULL) {
|
||||
*error = [self.class mj_error];
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
- (NSMutableDictionary *)keyValuesWithKeys:(NSArray *)keys
|
||||
{
|
||||
return [self mj_keyValuesWithKeys:keys];
|
||||
}
|
||||
|
||||
- (NSMutableDictionary *)keyValuesWithKeys:(NSArray *)keys error:(NSError **)error
|
||||
{
|
||||
id value = [self mj_keyValuesWithKeys:keys];
|
||||
if (error != NULL) {
|
||||
*error = [self.class mj_error];
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
- (NSMutableDictionary *)keyValuesWithIgnoredKeys:(NSArray *)ignoredKeys
|
||||
{
|
||||
return [self mj_keyValuesWithIgnoredKeys:ignoredKeys];
|
||||
}
|
||||
|
||||
- (NSMutableDictionary *)keyValuesWithIgnoredKeys:(NSArray *)ignoredKeys error:(NSError **)error
|
||||
{
|
||||
id value = [self mj_keyValuesWithIgnoredKeys:ignoredKeys];
|
||||
if (error != NULL) {
|
||||
*error = [self.class mj_error];
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
+ (NSMutableArray *)keyValuesArrayWithObjectArray:(NSArray *)objectArray
|
||||
{
|
||||
return [self mj_keyValuesArrayWithObjectArray:objectArray];
|
||||
}
|
||||
|
||||
+ (NSMutableArray *)keyValuesArrayWithObjectArray:(NSArray *)objectArray error:(NSError **)error
|
||||
{
|
||||
id value = [self mj_keyValuesArrayWithObjectArray:objectArray];
|
||||
if (error != NULL) {
|
||||
*error = [self mj_error];
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
+ (NSMutableArray *)keyValuesArrayWithObjectArray:(NSArray *)objectArray keys:(NSArray *)keys
|
||||
{
|
||||
return [self mj_keyValuesArrayWithObjectArray:objectArray keys:keys];
|
||||
}
|
||||
|
||||
+ (NSMutableArray *)keyValuesArrayWithObjectArray:(NSArray *)objectArray keys:(NSArray *)keys error:(NSError **)error
|
||||
{
|
||||
id value = [self mj_keyValuesArrayWithObjectArray:objectArray keys:keys];
|
||||
if (error != NULL) {
|
||||
*error = [self mj_error];
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
+ (NSMutableArray *)keyValuesArrayWithObjectArray:(NSArray *)objectArray ignoredKeys:(NSArray *)ignoredKeys
|
||||
{
|
||||
return [self mj_keyValuesArrayWithObjectArray:objectArray ignoredKeys:ignoredKeys];
|
||||
}
|
||||
|
||||
+ (NSMutableArray *)keyValuesArrayWithObjectArray:(NSArray *)objectArray ignoredKeys:(NSArray *)ignoredKeys error:(NSError **)error
|
||||
{
|
||||
id value = [self mj_keyValuesArrayWithObjectArray:objectArray ignoredKeys:ignoredKeys];
|
||||
if (error != NULL) {
|
||||
*error = [self mj_error];
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
+ (instancetype)objectWithKeyValues:(id)keyValues
|
||||
{
|
||||
return [self mj_objectWithKeyValues:keyValues];
|
||||
}
|
||||
|
||||
+ (instancetype)objectWithKeyValues:(id)keyValues error:(NSError **)error
|
||||
{
|
||||
id value = [self mj_objectWithKeyValues:keyValues];
|
||||
if (error != NULL) {
|
||||
*error = [self mj_error];
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
+ (instancetype)objectWithKeyValues:(id)keyValues context:(NSManagedObjectContext *)context
|
||||
{
|
||||
return [self mj_objectWithKeyValues:keyValues context:context];
|
||||
}
|
||||
|
||||
+ (instancetype)objectWithKeyValues:(id)keyValues context:(NSManagedObjectContext *)context error:(NSError **)error
|
||||
{
|
||||
id value = [self mj_objectWithKeyValues:keyValues context:context];
|
||||
if (error != NULL) {
|
||||
*error = [self mj_error];
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
+ (instancetype)objectWithFilename:(NSString *)filename
|
||||
{
|
||||
return [self mj_objectWithFilename:filename];
|
||||
}
|
||||
|
||||
+ (instancetype)objectWithFilename:(NSString *)filename error:(NSError **)error
|
||||
{
|
||||
id value = [self mj_objectWithFilename:filename];
|
||||
if (error != NULL) {
|
||||
*error = [self mj_error];
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
+ (instancetype)objectWithFile:(NSString *)file
|
||||
{
|
||||
return [self mj_objectWithFile:file];
|
||||
}
|
||||
|
||||
+ (instancetype)objectWithFile:(NSString *)file error:(NSError **)error
|
||||
{
|
||||
id value = [self mj_objectWithFile:file];
|
||||
if (error != NULL) {
|
||||
*error = [self mj_error];
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
+ (NSMutableArray *)objectArrayWithKeyValuesArray:(id)keyValuesArray
|
||||
{
|
||||
return [self mj_objectArrayWithKeyValuesArray:keyValuesArray];
|
||||
}
|
||||
|
||||
+ (NSMutableArray *)objectArrayWithKeyValuesArray:(id)keyValuesArray error:(NSError **)error
|
||||
{
|
||||
id value = [self mj_objectArrayWithKeyValuesArray:keyValuesArray];
|
||||
if (error != NULL) {
|
||||
*error = [self mj_error];
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
+ (NSMutableArray *)objectArrayWithKeyValuesArray:(id)keyValuesArray context:(NSManagedObjectContext *)context
|
||||
{
|
||||
return [self mj_objectArrayWithKeyValuesArray:keyValuesArray context:context];
|
||||
}
|
||||
|
||||
+ (NSMutableArray *)objectArrayWithKeyValuesArray:(id)keyValuesArray context:(NSManagedObjectContext *)context error:(NSError **)error
|
||||
{
|
||||
id value = [self mj_objectArrayWithKeyValuesArray:keyValuesArray context:context];
|
||||
if (error != NULL) {
|
||||
*error = [self mj_error];
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
+ (NSMutableArray *)objectArrayWithFilename:(NSString *)filename
|
||||
{
|
||||
return [self mj_objectArrayWithFilename:filename];
|
||||
}
|
||||
|
||||
+ (NSMutableArray *)objectArrayWithFilename:(NSString *)filename error:(NSError **)error
|
||||
{
|
||||
id value = [self mj_objectArrayWithFilename:filename];
|
||||
if (error != NULL) {
|
||||
*error = [self mj_error];
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
+ (NSMutableArray *)objectArrayWithFile:(NSString *)file
|
||||
{
|
||||
return [self mj_objectArrayWithFile:file];
|
||||
}
|
||||
|
||||
+ (NSMutableArray *)objectArrayWithFile:(NSString *)file error:(NSError **)error
|
||||
{
|
||||
id value = [self mj_objectArrayWithFile:file];
|
||||
if (error != NULL) {
|
||||
*error = [self mj_error];
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
- (NSData *)JSONData
|
||||
{
|
||||
return [self mj_JSONData];
|
||||
}
|
||||
|
||||
- (id)JSONObject
|
||||
{
|
||||
return [self mj_JSONObject];
|
||||
}
|
||||
|
||||
- (NSString *)JSONString
|
||||
{
|
||||
return [self mj_JSONString];
|
||||
}
|
||||
|
||||
@end
|
||||
Regular → Executable
+2
-11
@@ -20,10 +20,10 @@
|
||||
typedef void (^MJPropertiesEnumeration)(MJProperty *property, BOOL *stop);
|
||||
|
||||
/** 将属性名换为其他key去字典中取值 */
|
||||
typedef NSDictionary * (^MJReplacedKeyFromPropertyName)();
|
||||
typedef NSDictionary * (^MJReplacedKeyFromPropertyName)(void);
|
||||
typedef id (^MJReplacedKeyFromPropertyName121)(NSString *propertyName);
|
||||
/** 数组中需要转换的模型类 */
|
||||
typedef NSDictionary * (^MJObjectClassInArray)();
|
||||
typedef NSDictionary * (^MJObjectClassInArray)(void);
|
||||
/** 用于过滤字典中的值 */
|
||||
typedef id (^MJNewValueFromOldValue)(id object, id oldValue, MJProperty *property);
|
||||
|
||||
@@ -68,12 +68,3 @@ typedef id (^MJNewValueFromOldValue)(id object, id oldValue, MJProperty *propert
|
||||
*/
|
||||
+ (void)mj_setupObjectClassInArray:(MJObjectClassInArray)objectClassInArray;
|
||||
@end
|
||||
|
||||
@interface NSObject (MJPropertyDeprecated_v_2_5_16)
|
||||
+ (void)enumerateProperties:(MJPropertiesEnumeration)enumeration MJExtensionDeprecated("请在方法名前面加上mj_前缀,使用mj_***");
|
||||
+ (void)setupNewValueFromOldValue:(MJNewValueFromOldValue)newValueFormOldValue MJExtensionDeprecated("请在方法名前面加上mj_前缀,使用mj_***");
|
||||
+ (id)getNewValueFromObject:(__unsafe_unretained id)object oldValue:(__unsafe_unretained id)oldValue property:(__unsafe_unretained MJProperty *)property MJExtensionDeprecated("请在方法名前面加上mj_前缀,使用mj_***");
|
||||
+ (void)setupReplacedKeyFromPropertyName:(MJReplacedKeyFromPropertyName)replacedKeyFromPropertyName MJExtensionDeprecated("请在方法名前面加上mj_前缀,使用mj_***");
|
||||
+ (void)setupReplacedKeyFromPropertyName121:(MJReplacedKeyFromPropertyName121)replacedKeyFromPropertyName121 MJExtensionDeprecated("请在方法名前面加上mj_前缀,使用mj_***");
|
||||
+ (void)setupObjectClassInArray:(MJObjectClassInArray)objectClassInArray MJExtensionDeprecated("请在方法名前面加上mj_前缀,使用mj_***");
|
||||
@end
|
||||
Regular → Executable
+48
-83
@@ -27,35 +27,33 @@ static const char MJCachedPropertiesKey = '\0';
|
||||
|
||||
@implementation NSObject (Property)
|
||||
|
||||
static NSMutableDictionary *replacedKeyFromPropertyNameDict_;
|
||||
static NSMutableDictionary *replacedKeyFromPropertyName121Dict_;
|
||||
static NSMutableDictionary *newValueFromOldValueDict_;
|
||||
static NSMutableDictionary *objectClassInArrayDict_;
|
||||
static NSMutableDictionary *cachedPropertiesDict_;
|
||||
|
||||
+ (void)load
|
||||
+ (NSMutableDictionary *)mj_propertyDictForKey:(const void *)key
|
||||
{
|
||||
replacedKeyFromPropertyNameDict_ = [NSMutableDictionary dictionary];
|
||||
replacedKeyFromPropertyName121Dict_ = [NSMutableDictionary dictionary];
|
||||
newValueFromOldValueDict_ = [NSMutableDictionary dictionary];
|
||||
objectClassInArrayDict_ = [NSMutableDictionary dictionary];
|
||||
cachedPropertiesDict_ = [NSMutableDictionary dictionary];
|
||||
}
|
||||
static NSMutableDictionary *replacedKeyFromPropertyNameDict;
|
||||
static NSMutableDictionary *replacedKeyFromPropertyName121Dict;
|
||||
static NSMutableDictionary *newValueFromOldValueDict;
|
||||
static NSMutableDictionary *objectClassInArrayDict;
|
||||
static NSMutableDictionary *cachedPropertiesDict;
|
||||
|
||||
+ (NSMutableDictionary *)dictForKey:(const void *)key
|
||||
{
|
||||
@synchronized (self) {
|
||||
if (key == &MJReplacedKeyFromPropertyNameKey) return replacedKeyFromPropertyNameDict_;
|
||||
if (key == &MJReplacedKeyFromPropertyName121Key) return replacedKeyFromPropertyName121Dict_;
|
||||
if (key == &MJNewValueFromOldValueKey) return newValueFromOldValueDict_;
|
||||
if (key == &MJObjectClassInArrayKey) return objectClassInArrayDict_;
|
||||
if (key == &MJCachedPropertiesKey) return cachedPropertiesDict_;
|
||||
static dispatch_once_t onceToken;
|
||||
dispatch_once(&onceToken, ^{
|
||||
replacedKeyFromPropertyNameDict = [NSMutableDictionary dictionary];
|
||||
replacedKeyFromPropertyName121Dict = [NSMutableDictionary dictionary];
|
||||
newValueFromOldValueDict = [NSMutableDictionary dictionary];
|
||||
objectClassInArrayDict = [NSMutableDictionary dictionary];
|
||||
cachedPropertiesDict = [NSMutableDictionary dictionary];
|
||||
});
|
||||
|
||||
if (key == &MJReplacedKeyFromPropertyNameKey) return replacedKeyFromPropertyNameDict;
|
||||
if (key == &MJReplacedKeyFromPropertyName121Key) return replacedKeyFromPropertyName121Dict;
|
||||
if (key == &MJNewValueFromOldValueKey) return newValueFromOldValueDict;
|
||||
if (key == &MJObjectClassInArrayKey) return objectClassInArrayDict;
|
||||
if (key == &MJCachedPropertiesKey) return cachedPropertiesDict;
|
||||
return nil;
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark - --私有方法--
|
||||
+ (id)propertyKey:(NSString *)propertyName
|
||||
+ (id)mj_propertyKey:(NSString *)propertyName
|
||||
{
|
||||
MJExtensionAssertParamNotNil2(propertyName, nil);
|
||||
|
||||
@@ -64,10 +62,6 @@ static NSMutableDictionary *cachedPropertiesDict_;
|
||||
if ([self respondsToSelector:@selector(mj_replacedKeyFromPropertyName121:)]) {
|
||||
key = [self mj_replacedKeyFromPropertyName121:propertyName];
|
||||
}
|
||||
// 兼容旧版本
|
||||
if ([self respondsToSelector:@selector(replacedKeyFromPropertyName121:)]) {
|
||||
key = [self performSelector:@selector(replacedKeyFromPropertyName121) withObject:propertyName];
|
||||
}
|
||||
|
||||
// 调用block
|
||||
if (!key) {
|
||||
@@ -84,10 +78,6 @@ static NSMutableDictionary *cachedPropertiesDict_;
|
||||
if ((!key || [key isEqual:propertyName]) && [self respondsToSelector:@selector(mj_replacedKeyFromPropertyName)]) {
|
||||
key = [self mj_replacedKeyFromPropertyName][propertyName];
|
||||
}
|
||||
// 兼容旧版本
|
||||
if ((!key || [key isEqual:propertyName]) && [self respondsToSelector:@selector(replacedKeyFromPropertyName)]) {
|
||||
key = [self performSelector:@selector(replacedKeyFromPropertyName)][propertyName];
|
||||
}
|
||||
|
||||
if (!key || [key isEqual:propertyName]) {
|
||||
[self mj_enumerateAllClasses:^(__unsafe_unretained Class c, BOOL *stop) {
|
||||
@@ -105,16 +95,12 @@ static NSMutableDictionary *cachedPropertiesDict_;
|
||||
return key;
|
||||
}
|
||||
|
||||
+ (Class)propertyObjectClassInArray:(NSString *)propertyName
|
||||
+ (Class)mj_propertyObjectClassInArray:(NSString *)propertyName
|
||||
{
|
||||
__block id clazz = nil;
|
||||
if ([self respondsToSelector:@selector(mj_objectClassInArray)]) {
|
||||
clazz = [self mj_objectClassInArray][propertyName];
|
||||
}
|
||||
// 兼容旧版本
|
||||
if ([self respondsToSelector:@selector(objectClassInArray)]) {
|
||||
clazz = [self performSelector:@selector(objectClassInArray)][propertyName];
|
||||
}
|
||||
|
||||
if (!clazz) {
|
||||
[self mj_enumerateAllClasses:^(__unsafe_unretained Class c, BOOL *stop) {
|
||||
@@ -137,8 +123,10 @@ static NSMutableDictionary *cachedPropertiesDict_;
|
||||
+ (void)mj_enumerateProperties:(MJPropertiesEnumeration)enumeration
|
||||
{
|
||||
// 获得成员变量
|
||||
NSArray *cachedProperties = [self properties];
|
||||
|
||||
MJExtensionSemaphoreCreate
|
||||
MJExtensionSemaphoreWait
|
||||
NSArray *cachedProperties = [self mj_properties];
|
||||
MJExtensionSemaphoreSignal
|
||||
// 遍历成员变量
|
||||
BOOL stop = NO;
|
||||
for (MJProperty *property in cachedProperties) {
|
||||
@@ -148,9 +136,10 @@ static NSMutableDictionary *cachedPropertiesDict_;
|
||||
}
|
||||
|
||||
#pragma mark - 公共方法
|
||||
+ (NSMutableArray *)properties
|
||||
+ (NSMutableArray *)mj_properties
|
||||
{
|
||||
NSMutableArray *cachedProperties = [self dictForKey:&MJCachedPropertiesKey][NSStringFromClass(self)];
|
||||
NSMutableArray *cachedProperties = [self mj_propertyDictForKey:&MJCachedPropertiesKey][NSStringFromClass(self)];
|
||||
if (cachedProperties == nil) {
|
||||
|
||||
if (cachedProperties == nil) {
|
||||
cachedProperties = [NSMutableArray array];
|
||||
@@ -165,9 +154,12 @@ static NSMutableDictionary *cachedPropertiesDict_;
|
||||
MJProperty *property = [MJProperty cachedPropertyWithProperty:properties[i]];
|
||||
// 过滤掉Foundation框架类里面的属性
|
||||
if ([MJFoundation isClassFromFoundation:property.srcClass]) continue;
|
||||
// 过滤掉`hash`, `superclass`, `description`, `debugDescription`
|
||||
if ([MJFoundation isFromNSObjectProtocolProperty:property.name]) continue;
|
||||
|
||||
property.srcClass = c;
|
||||
[property setOriginKey:[self propertyKey:property.name] forClass:self];
|
||||
[property setObjectClassInArray:[self propertyObjectClassInArray:property.name] forClass:self];
|
||||
[property setOriginKey:[self mj_propertyKey:property.name] forClass:self];
|
||||
[property setObjectClassInArray:[self mj_propertyObjectClassInArray:property.name] forClass:self];
|
||||
[cachedProperties addObject:property];
|
||||
}
|
||||
|
||||
@@ -175,7 +167,8 @@ static NSMutableDictionary *cachedPropertiesDict_;
|
||||
free(properties);
|
||||
}];
|
||||
|
||||
[self dictForKey:&MJCachedPropertiesKey][NSStringFromClass(self)] = cachedProperties;
|
||||
[self mj_propertyDictForKey:&MJCachedPropertiesKey][NSStringFromClass(self)] = cachedProperties;
|
||||
}
|
||||
}
|
||||
|
||||
return cachedProperties;
|
||||
@@ -192,10 +185,6 @@ static NSMutableDictionary *cachedPropertiesDict_;
|
||||
if ([object respondsToSelector:@selector(mj_newValueFromOldValue:property:)]) {
|
||||
return [object mj_newValueFromOldValue:oldValue property:property];
|
||||
}
|
||||
// 兼容旧版本
|
||||
if ([self respondsToSelector:@selector(newValueFromOldValue:property:)]) {
|
||||
return [self performSelector:@selector(newValueFromOldValue:property:) withObject:oldValue withObject:property];
|
||||
}
|
||||
|
||||
// 查看静态设置
|
||||
__block id newValue = oldValue;
|
||||
@@ -214,7 +203,10 @@ static NSMutableDictionary *cachedPropertiesDict_;
|
||||
{
|
||||
[self mj_setupBlockReturnValue:objectClassInArray key:&MJObjectClassInArrayKey];
|
||||
|
||||
[[self dictForKey:&MJCachedPropertiesKey] removeAllObjects];
|
||||
MJExtensionSemaphoreCreate
|
||||
MJExtensionSemaphoreWait
|
||||
[[self mj_propertyDictForKey:&MJCachedPropertiesKey] removeAllObjects];
|
||||
MJExtensionSemaphoreSignal
|
||||
}
|
||||
|
||||
#pragma mark - key配置
|
||||
@@ -222,47 +214,20 @@ static NSMutableDictionary *cachedPropertiesDict_;
|
||||
{
|
||||
[self mj_setupBlockReturnValue:replacedKeyFromPropertyName key:&MJReplacedKeyFromPropertyNameKey];
|
||||
|
||||
[[self dictForKey:&MJCachedPropertiesKey] removeAllObjects];
|
||||
MJExtensionSemaphoreCreate
|
||||
MJExtensionSemaphoreWait
|
||||
[[self mj_propertyDictForKey:&MJCachedPropertiesKey] removeAllObjects];
|
||||
MJExtensionSemaphoreSignal
|
||||
}
|
||||
|
||||
+ (void)mj_setupReplacedKeyFromPropertyName121:(MJReplacedKeyFromPropertyName121)replacedKeyFromPropertyName121
|
||||
{
|
||||
objc_setAssociatedObject(self, &MJReplacedKeyFromPropertyName121Key, replacedKeyFromPropertyName121, OBJC_ASSOCIATION_COPY_NONATOMIC);
|
||||
|
||||
[[self dictForKey:&MJCachedPropertiesKey] removeAllObjects];
|
||||
MJExtensionSemaphoreCreate
|
||||
MJExtensionSemaphoreWait
|
||||
[[self mj_propertyDictForKey:&MJCachedPropertiesKey] removeAllObjects];
|
||||
MJExtensionSemaphoreSignal
|
||||
}
|
||||
@end
|
||||
|
||||
@implementation NSObject (MJPropertyDeprecated_v_2_5_16)
|
||||
+ (void)enumerateProperties:(MJPropertiesEnumeration)enumeration
|
||||
{
|
||||
[self mj_enumerateProperties:enumeration];
|
||||
}
|
||||
|
||||
+ (void)setupNewValueFromOldValue:(MJNewValueFromOldValue)newValueFormOldValue
|
||||
{
|
||||
[self mj_setupNewValueFromOldValue:newValueFormOldValue];
|
||||
}
|
||||
|
||||
+ (id)getNewValueFromObject:(__unsafe_unretained id)object oldValue:(__unsafe_unretained id)oldValue property:(__unsafe_unretained MJProperty *)property
|
||||
{
|
||||
return [self mj_getNewValueFromObject:object oldValue:oldValue property:property];
|
||||
}
|
||||
|
||||
+ (void)setupReplacedKeyFromPropertyName:(MJReplacedKeyFromPropertyName)replacedKeyFromPropertyName
|
||||
{
|
||||
[self mj_setupReplacedKeyFromPropertyName:replacedKeyFromPropertyName];
|
||||
}
|
||||
|
||||
+ (void)setupReplacedKeyFromPropertyName121:(MJReplacedKeyFromPropertyName121)replacedKeyFromPropertyName121
|
||||
{
|
||||
[self mj_setupReplacedKeyFromPropertyName121:replacedKeyFromPropertyName121];
|
||||
}
|
||||
|
||||
+ (void)setupObjectClassInArray:(MJObjectClassInArray)objectClassInArray
|
||||
{
|
||||
[self mj_setupObjectClassInArray:objectClassInArray];
|
||||
}
|
||||
@end
|
||||
|
||||
#pragma clang diagnostic pop
|
||||
|
||||
Regular → Executable
-9
@@ -31,12 +31,3 @@
|
||||
|
||||
- (NSURL *)mj_url;
|
||||
@end
|
||||
|
||||
@interface NSString (MJExtensionDeprecated_v_2_5_16)
|
||||
- (NSString *)underlineFromCamel MJExtensionDeprecated("请在方法名前面加上mj_前缀,使用mj_***");
|
||||
- (NSString *)camelFromUnderline MJExtensionDeprecated("请在方法名前面加上mj_前缀,使用mj_***");
|
||||
- (NSString *)firstCharUpper MJExtensionDeprecated("请在方法名前面加上mj_前缀,使用mj_***");
|
||||
- (NSString *)firstCharLower MJExtensionDeprecated("请在方法名前面加上mj_前缀,使用mj_***");
|
||||
- (BOOL)isPureInt MJExtensionDeprecated("请在方法名前面加上mj_前缀,使用mj_***");
|
||||
- (NSURL *)url MJExtensionDeprecated("请在方法名前面加上mj_前缀,使用mj_***");
|
||||
@end
|
||||
|
||||
Regular → Executable
-32
@@ -78,35 +78,3 @@
|
||||
#pragma clang diagnostic pop
|
||||
}
|
||||
@end
|
||||
|
||||
@implementation NSString (MJExtensionDeprecated_v_2_5_16)
|
||||
- (NSString *)underlineFromCamel
|
||||
{
|
||||
return self.mj_underlineFromCamel;
|
||||
}
|
||||
|
||||
- (NSString *)camelFromUnderline
|
||||
{
|
||||
return self.mj_camelFromUnderline;
|
||||
}
|
||||
|
||||
- (NSString *)firstCharLower
|
||||
{
|
||||
return self.mj_firstCharLower;
|
||||
}
|
||||
|
||||
- (NSString *)firstCharUpper
|
||||
{
|
||||
return self.mj_firstCharUpper;
|
||||
}
|
||||
|
||||
- (BOOL)isPureInt
|
||||
{
|
||||
return self.mj_isPureInt;
|
||||
}
|
||||
|
||||
- (NSURL *)url
|
||||
{
|
||||
return self.mj_url;
|
||||
}
|
||||
@end
|
||||
|
||||
@@ -423,8 +423,6 @@ extern BOOL isfromCameraView;
|
||||
if (_maclabel) {
|
||||
[_maclabel removeFromSuperview];
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
- (IBAction)lickHereBtnClicked:(id)sender {
|
||||
|
||||
Reference in New Issue
Block a user