diff --git a/Mixpanel/BindingMessage.swift b/Mixpanel/BindingMessage.swift index d75d737..82bc112 100644 --- a/Mixpanel/BindingMessage.swift +++ b/Mixpanel/BindingMessage.swift @@ -26,7 +26,7 @@ class BindingRequest: BaseWebSocketMessage { var bindingCollection = connection.getSessionObjectSynchronized(for: "event_bindings") as? CodelessBindingCollection if bindingCollection == nil { bindingCollection = CodelessBindingCollection() - connection.setSessionObjectSynchronized(with: bindingCollection, for: "event_bindings") + connection.setSessionObjectSynchronized(with: bindingCollection!, for: "event_bindings") } if let payload = self.payload["events"] as? [[String: Any]] { diff --git a/Mixpanel/ChangeMessage.swift b/Mixpanel/ChangeMessage.swift index 55b8596..ab48964 100644 --- a/Mixpanel/ChangeMessage.swift +++ b/Mixpanel/ChangeMessage.swift @@ -26,7 +26,7 @@ class ChangeRequest: BaseWebSocketMessage { var variant = connection.getSessionObjectSynchronized(for: "session_variant") as? Variant if variant == nil { variant = Variant(ID: 0, experimentID: 0, actions: [], tweaks: []) - connection.setSessionObjectSynchronized(with: variant, for: "session_variant") + connection.setSessionObjectSynchronized(with: variant!, for: "session_variant") } if let actions = self.payload["actions"] as? [[String: Any]] { diff --git a/Mixpanel/ObjectSerializer.swift b/Mixpanel/ObjectSerializer.swift index 399c613..884a729 100644 --- a/Mixpanel/ObjectSerializer.swift +++ b/Mixpanel/ObjectSerializer.swift @@ -47,7 +47,7 @@ class ObjectSerializer { } } - let delegateSelector: Selector = Selector("delegate") + let delegateSelector: Selector = NSSelectorFromString("delegate") if !classDescription.delegateInfos.isEmpty && object.responds(to: delegateSelector) { let imp = object.method(for: delegateSelector) typealias MyCFunction = @convention(c) (AnyObject, Selector) -> AnyObject diff --git a/Mixpanel/ObjectSerializerConfig.swift b/Mixpanel/ObjectSerializerConfig.swift index 2d5b3bd..e30e753 100644 --- a/Mixpanel/ObjectSerializerConfig.swift +++ b/Mixpanel/ObjectSerializerConfig.swift @@ -171,7 +171,7 @@ class PropertyDescription { predicate = NSPredicate(format: predicateFormat) } - let getDict = dict["get"] as? [String: Any] ?? ["selector": name, + let getDict = dict["get"] as? [String: Any] ?? ["selector": name ?? "😢", "result": ["type": dict["type"], "name": "value"], "parameters": []] diff --git a/Mixpanel/SnapshotMessage.swift b/Mixpanel/SnapshotMessage.swift index bfad555..15814ca 100644 --- a/Mixpanel/SnapshotMessage.swift +++ b/Mixpanel/SnapshotMessage.swift @@ -51,7 +51,7 @@ class SnapshotRequest: BaseWebSocketMessage { var objectIdentityProvider = connection.getSessionObjectSynchronized(for: "object_identity_provider") if objectIdentityProvider == nil { objectIdentityProvider = ObjectIdentityProvider() - connection.setSessionObjectSynchronized(with: objectIdentityProvider, for: "object_identity_provider") + connection.setSessionObjectSynchronized(with: objectIdentityProvider!, for: "object_identity_provider") } let serializer = ApplicationStateSerializer(application: UIApplication.shared, diff --git a/Mixpanel/TweakMessage.swift b/Mixpanel/TweakMessage.swift index d09adc6..f506c46 100644 --- a/Mixpanel/TweakMessage.swift +++ b/Mixpanel/TweakMessage.swift @@ -26,7 +26,7 @@ class TweakRequest: BaseWebSocketMessage { var variant = connection.getSessionObjectSynchronized(for: "session_variant") as? Variant if variant == nil { variant = Variant(ID: 0, experimentID: 0, actions: [], tweaks: []) - connection.setSessionObjectSynchronized(with: variant, for: "session_variant") + connection.setSessionObjectSynchronized(with: variant!, for: "session_variant") } if let tweaks = self.payload["tweaks"] as? [[String: Any]] { diff --git a/Mixpanel/UIViewSelectors.swift b/Mixpanel/UIViewSelectors.swift index d8a78a2..25772f9 100644 --- a/Mixpanel/UIViewSelectors.swift +++ b/Mixpanel/UIViewSelectors.swift @@ -80,7 +80,7 @@ extension UIView { func mp_imageFingerprint() -> String? { var result: String? = nil var originalImage: UIImage? = nil - let imageSelector = Selector("image") + let imageSelector = NSSelectorFromString("image") if let button = self as? UIButton { originalImage = button.image(for: UIControlState.normal) @@ -146,7 +146,7 @@ extension UIView { func mp_text() -> String? { var text: String? = nil - let titleSelector = Selector("title") + let titleSelector = NSSelectorFromString("title") if let label = self as? UILabel { text = label.text } else if let button = self as? UIButton { diff --git a/Mixpanel/WebSocketWrapper.swift b/Mixpanel/WebSocketWrapper.swift index 438d8a6..ec628e1 100644 --- a/Mixpanel/WebSocketWrapper.swift +++ b/Mixpanel/WebSocketWrapper.swift @@ -201,7 +201,7 @@ class WebSocketWrapper: WebSocketDelegate { } else { indeterminateLayer?.removeAnimation(forKey: WebSocketWrapper.startLoadingAnimationKey) loadBasicAnimation(duration: 0.4, - fromValue: indeterminateLayer?.presentation()?.value(forKey: "bounds.size.width"), + fromValue: indeterminateLayer?.presentation()?.value(forKey: "bounds.size.width") ?? 0.0, toValue: connectivityIndiciatorWindow!.bounds.size.width * 2, animationKey: WebSocketWrapper.finishLoadingAnimationKey) }