From 60e265aa20e97fa7db8b26bfd5b96345a85f958c Mon Sep 17 00:00:00 2001 From: Jared McFarland Date: Thu, 14 Mar 2024 16:32:29 -0700 Subject: [PATCH] Update docs --- docs/Classes.html | 54 +- docs/Classes/Group.html | 223 +++- docs/Classes/Mixpanel.html | 255 +++- docs/Classes/MixpanelInstance.html | 1082 +++++++++++++++-- docs/Classes/People.html | 395 +++++- docs/Extensions.html | 186 ++- docs/Extensions/Array.html | 40 +- docs/Extensions/Bool.html | 40 +- docs/Extensions/Date.html | 40 +- docs/Extensions/Dictionary.html | 40 +- docs/Extensions/Double.html | 40 +- docs/Extensions/Float.html | 40 +- docs/Extensions/Int.html | 40 +- docs/Extensions/NSArray.html | 40 +- docs/Extensions/NSNull.html | 40 +- docs/Extensions/NSNumber.html | 40 +- docs/Extensions/NSString.html | 40 +- docs/Extensions/Optional.html | 40 +- docs/Extensions/String.html | 40 +- docs/Extensions/UInt.html | 40 +- docs/Extensions/URL.html | 40 +- docs/Protocols.html | 30 +- docs/Protocols/MixpanelDelegate.html | 48 +- docs/Protocols/MixpanelType.html | 40 +- docs/Typealiases.html | 21 +- docs/badge.svg | 16 +- .../Contents/Resources/Documents/Classes.html | 54 +- .../Resources/Documents/Classes/Group.html | 223 +++- .../Resources/Documents/Classes/Mixpanel.html | 255 +++- .../Documents/Classes/MixpanelInstance.html | 1082 +++++++++++++++-- .../Resources/Documents/Classes/People.html | 395 +++++- .../Resources/Documents/Extensions.html | 186 ++- .../Resources/Documents/Extensions/Array.html | 40 +- .../Resources/Documents/Extensions/Bool.html | 40 +- .../Resources/Documents/Extensions/Date.html | 40 +- .../Documents/Extensions/Dictionary.html | 40 +- .../Documents/Extensions/Double.html | 40 +- .../Resources/Documents/Extensions/Float.html | 40 +- .../Resources/Documents/Extensions/Int.html | 40 +- .../Documents/Extensions/NSArray.html | 40 +- .../Documents/Extensions/NSNull.html | 40 +- .../Documents/Extensions/NSNumber.html | 40 +- .../Documents/Extensions/NSString.html | 40 +- .../Documents/Extensions/Optional.html | 40 +- .../Documents/Extensions/String.html | 40 +- .../Resources/Documents/Extensions/UInt.html | 40 +- .../Resources/Documents/Extensions/URL.html | 40 +- .../Resources/Documents/Protocols.html | 30 +- .../Documents/Protocols/MixpanelDelegate.html | 48 +- .../Documents/Protocols/MixpanelType.html | 40 +- .../Resources/Documents/Typealiases.html | 21 +- .../Contents/Resources/Documents/index.html | 10 +- .../Contents/Resources/Documents/search.json | 2 +- .../Contents/Resources/docSet.dsidx | Bin 36864 -> 45056 bytes docs/docsets/Mixpanel.tgz | Bin 89930 -> 99258 bytes docs/index.html | 10 +- docs/search.json | 2 +- docs/undocumented.json | 143 ++- 58 files changed, 5337 insertions(+), 714 deletions(-) diff --git a/docs/Classes.html b/docs/Classes.html index 85428e555..a0238171f 100644 --- a/docs/Classes.html +++ b/docs/Classes.html @@ -17,7 +17,7 @@
-

Mixpanel 4.2.0 Docs (0% documented)

+

Mixpanel 4.2.1 Docs (84% documented)

GitHubView on GitHub

@@ -118,7 +118,7 @@ Type Aliases @@ -137,9 +137,9 @@

Classes

  • - + - Group + Group
    @@ -152,15 +152,23 @@

    Classes

    See more
    +
    +

    Declaration

    +
    +

    Swift

    +
    open class Group
    + +
    +
  • - + - Mixpanel + Mixpanel
    @@ -172,15 +180,23 @@

    Classes

    See more
    +
    +

    Declaration

    +
    +

    Swift

    +
    open class Mixpanel
    + +
    +
  • - + - MixpanelInstance + MixpanelInstance
    @@ -192,15 +208,23 @@

    Classes

    See more
    +
    +

    Declaration

    +
    +

    Swift

    +
    open class MixpanelInstance : CustomDebugStringConvertible, FlushDelegate, AEDelegate
    + +
    +
  • - + - People + People
    @@ -213,6 +237,14 @@

    Classes

    See more
    +
    +

    Declaration

    +
    +

    Swift

    +
    open class People
    + +
    +
  • @@ -221,7 +253,7 @@

    Classes

    diff --git a/docs/Classes/Group.html b/docs/Classes/Group.html index f267f6f73..c723b56a5 100644 --- a/docs/Classes/Group.html +++ b/docs/Classes/Group.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.2.0 Docs (0% documented)

    +

    Mixpanel 4.2.1 Docs (84% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases @@ -128,6 +128,13 @@

    Group

    +
    +
    + +
    open class Group
    + +
    +

    Access to the Mixpanel Groups API, available through the getGroup function from the main Mixpanel instance.

    @@ -147,9 +154,9 @@

    Group
  • @@ -165,15 +172,42 @@

    Group value is overwritten. Other existing properties will not be affected.

    +
    +

    Declaration

    +
    +

    Swift

    +
    open func set(properties: Properties)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + properties + + +
    +

    properties dictionary

    +
    +
    +
  • @@ -187,15 +221,54 @@

    Group MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.

    +
    +

    Declaration

    +
    +

    Swift

    +
    open func set(property: String, to: MixpanelType)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + property + + +
    +

    property name

    +
    +
    + + to + + +
    +

    property value

    +
    +
    +
  • - + - setOnce(properties:) + setOnce(properties:)
    @@ -211,15 +284,42 @@

    Group data about dates representing the first time something happened.

    +
    +

    Declaration

    +
    +

    Swift

    +
    open func setOnce(properties: Properties)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + properties + + +
    +

    properties dictionary

    +
    +
    +
  • - + - unset(property:) + unset(property:)
    @@ -232,15 +332,42 @@

    Group

    For properties that don’t exist there will be no effect.

    +
    +

    Declaration

    +
    +

    Swift

    +
    open func unset(property: String)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + property + + +
    +

    name of the property to unset

    +
    +
    +
  • - + - remove(key:value:) + remove(key:value:)
    @@ -254,15 +381,42 @@

    Group MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.

    +
    +

    Declaration

    +
    +

    Swift

    +
    open func remove(key: String, value: MixpanelType)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + properties + + +
    +

    mapping of list property names to values to remove

    +
    +
    +
  • - + - union(key:values:) + union(key:values:)
    @@ -275,15 +429,42 @@

    Group

    Property values must be array objects.

    +
    +

    Declaration

    +
    +

    Swift

    +
    open func union(key: String, values: [MixpanelType])
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + properties + + +
    +

    mapping of list property names to lists to union

    +
    +
    +
  • - + - deleteGroup() + deleteGroup()
    @@ -294,6 +475,14 @@

    Group

    Delete group’s record from Mixpanel Groups.

    +
    +

    Declaration

    +
    +

    Swift

    +
    open func deleteGroup()
    + +
    +
  • @@ -302,7 +491,7 @@

    Group diff --git a/docs/Classes/Mixpanel.html b/docs/Classes/Mixpanel.html index 42089c2e4..d01ea85ab 100644 --- a/docs/Classes/Mixpanel.html +++ b/docs/Classes/Mixpanel.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.2.0 Docs (0% documented)

    +

    Mixpanel 4.2.1 Docs (84% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases @@ -128,6 +128,13 @@

    Mixpanel

    +
    +
    + +
    open class Mixpanel
    + +
    +

    The primary class for integrating Mixpanel with your app.

    @@ -137,9 +144,9 @@

    Mixpanel

  • @@ -160,6 +167,131 @@

    Mixpanel

  • +
    +

    Declaration

    +
    +

    Swift

    +
    @discardableResult
    +open class func initialize(token apiToken: String,
    +                           trackAutomaticEvents: Bool,
    +                           flushInterval: Double = 60,
    +                           instanceName: String? = nil,
    +                           optOutTrackingByDefault: Bool = false,
    +                           useUniqueDistinctId: Bool = false,
    +                           superProperties: Properties? = nil,
    +                           serverURL: String? = nil) -> MixpanelInstance
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + token + + +
    +

    your project token

    +
    +
    + + trackAutomaticEvents + + +
    +

    Whether or not to collect common mobile events

    +
    +
    + + flushInterval + + +
    +

    Optional. Interval to run background flushing

    +
    +
    + + instanceName + + +
    +

    Optional. The name you want to uniquely identify the Mixpanel Instance. +It is useful when you want more than one Mixpanel instance under the same project token.

    +
    +
    + + optOutTrackingByDefault + + +
    +

    Optional. Whether or not to be opted out from tracking by default

    +
    +
    + + useUniqueDistinctId + + +
    +

    Optional. whether or not to use the unique device identifier as the distinct_id

    +
    +
    + + superProperties + + +
    +

    Optional. Super properties dictionary to register during initialization

    +
    +
    + + serverURL + + +
    +

    Optional. Mixpanel cluster URL

    +
    +
    +
    +
    +

    Return Value

    +

    returns a mixpanel instance if needed to keep throughout the project. +You can always get the instance by calling getInstance(name)

    +
    @@ -195,9 +327,9 @@

    Mixpanel

  • @@ -208,15 +340,46 @@

    Mixpanel

    Gets the mixpanel instance with the given name

    +
    +

    Declaration

    +
    +

    Swift

    +
    open class func getInstance(name: String) -> MixpanelInstance?
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + name + + +
    +

    the instance name

    +
    +
    +
    +
    +

    Return Value

    +

    returns the mixpanel instance

    +
  • @@ -229,15 +392,27 @@

    Mixpanel

    If not specified explicitly, the main instance is always the last instance added

    +
    +

    Declaration

    +
    +

    Swift

    +
    open class func mainInstance() -> MixpanelInstance
    + +
    +
    +
    +

    Return Value

    +

    returns the main Mixpanel instance

    +
  • @@ -248,15 +423,42 @@

    Mixpanel

    Sets the main instance based on the instance name

    +
    +

    Declaration

    +
    +

    Swift

    +
    open class func setMainInstance(name: String)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + name + + +
    +

    the instance name

    +
    +
    +
  • @@ -267,6 +469,33 @@

    Mixpanel

    Removes an unneeded Mixpanel instance based on its name

    +
    +

    Declaration

    +
    +

    Swift

    +
    open class func removeInstance(name: String)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + name + + +
    +

    the instance name

    +
    +
    +
  • @@ -275,7 +504,7 @@

    Mixpanel

    diff --git a/docs/Classes/MixpanelInstance.html b/docs/Classes/MixpanelInstance.html index ff5c9dbe2..0849a60e6 100644 --- a/docs/Classes/MixpanelInstance.html +++ b/docs/Classes/MixpanelInstance.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.2.0 Docs (0% documented)

    +

    Mixpanel 4.2.1 Docs (84% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases @@ -128,6 +128,13 @@

    MixpanelInstance

    +
    +
    + +
    open class MixpanelInstance : CustomDebugStringConvertible, FlushDelegate, AEDelegate
    + +
    +

    The class that represents the Mixpanel Instance

    @@ -137,9 +144,9 @@

    MixpanelInstance

  • - + - apiToken + apiToken
    @@ -150,15 +157,23 @@

    MixpanelInstance

    apiToken string that identifies the project to track data to

    +
    +

    Declaration

    +
    +

    Swift

    +
    open var apiToken: String
    + +
    +
  • - + - delegate + delegate
    @@ -169,15 +184,23 @@

    MixpanelInstance

    The a MixpanelDelegate object that gives control over Mixpanel network activity.

    +
    +

    Declaration

    +
    +

    Swift

    +
    open weak var delegate: MixpanelDelegate?
    + +
    +
  • @@ -188,15 +211,23 @@

    MixpanelInstance

    distinctId string that uniquely identifies the current user.

    +
    +

    Declaration

    +
    +

    Swift

    +
    open var distinctId: String
    + +
    +
  • @@ -207,15 +238,23 @@

    MixpanelInstance

    anonymousId string that uniquely identifies the device.

    +
    +

    Declaration

    +
    +

    Swift

    +
    open var anonymousId: String?
    + +
    +
  • - + - userId + userId
    @@ -226,15 +265,23 @@

    MixpanelInstance

    userId string that identify is called with.

    +
    +

    Declaration

    +
    +

    Swift

    +
    open var userId: String?
    + +
    +
  • @@ -246,15 +293,23 @@

    MixpanelInstance

    already exists in persistence

    +
    +

    Declaration

    +
    +

    Swift

    +
    open var hadPersistedDistinctId: Bool?
    + +
    +
  • - + - alias + alias
    @@ -265,15 +320,23 @@

    MixpanelInstance

    alias string that uniquely identifies the current user.

    +
    +

    Declaration

    +
    +

    Swift

    +
    open var alias: String?
    + +
    +
  • - + - people + people
    @@ -284,15 +347,23 @@

    MixpanelInstance

    Accessor to the Mixpanel People API object.

    +
    +

    Declaration

    +
    +

    Swift

    +
    open var people: People!
    + +
    +
  • @@ -304,15 +375,23 @@

    MixpanelInstance

    data to the Mixpanel servers. Defaults to true.

    +
    +

    Declaration

    +
    +

    Swift

    +
    open var showNetworkActivityIndicator: Bool
    + +
    +
  • @@ -323,15 +402,23 @@

    MixpanelInstance

    This allows enabling or disabling collecting common mobile events,

    +
    +

    Declaration

    +
    +

    Swift

    +
    open var trackAutomaticEventsEnabled: Bool
    + +
    +
  • @@ -344,15 +431,23 @@

    MixpanelInstance

    to upload queued data to the Mixpanel server.

    +
    +

    Declaration

    +
    +

    Swift

    +
    open var flushInterval: Double { get set }
    + +
    +
  • @@ -364,15 +459,23 @@

    MixpanelInstance

    enters the background. Defaults to true.

    +
    +

    Declaration

    +
    +

    Swift

    +
    open var flushOnBackground: Bool { get set }
    + +
    +
  • @@ -385,15 +488,23 @@

    MixpanelInstance

    Defaults to true.

    +
    +

    Declaration

    +
    +

    Swift

    +
    open var useIPAddressForGeoLocation: Bool { get set }
    + +
    +
  • @@ -406,15 +517,23 @@

    MixpanelInstance

    and the server. The maximum size is 50; any value over 50 will default to 50.

    +
    +

    Declaration

    +
    +

    Swift

    +
    open var flushBatchSize: Int { get set }
    + +
    +
  • @@ -427,15 +546,23 @@

    MixpanelInstance

    https://api.mixpanel.com.

    +
    +

    Declaration

    +
    +

    Swift

    +
    open var serverURL: String { get set }
    + +
    +
  • @@ -445,15 +572,23 @@

    MixpanelInstance

    +
    +

    Declaration

    +
    +

    Swift

    +
    open var debugDescription: String { get }
    + +
    +
  • @@ -470,15 +605,23 @@

    MixpanelInstance

    +
    +

    Declaration

    +
    +

    Swift

    +
    open var loggingEnabled: Bool { get set }
    + +
    +
  • - + - name + name
    @@ -489,15 +632,23 @@

    MixpanelInstance

    A unique identifier for this MixpanelInstance

    +
    +

    Declaration

    +
    +

    Swift

    +
    public let name: String
    + +
    +
  • @@ -505,19 +656,26 @@

    MixpanelInstance

    -

    The minimum session duration (ms) that is tracked in automatic events. -The default value is 10000 (10 seconds).

    +

    Undocumented

    +
    +

    Declaration

    +
    +

    Swift

    +
    open var minimumSessionDuration: UInt64 { get set }
    + +
    +
  • @@ -529,6 +687,14 @@

    MixpanelInstance

    The default value is UINT64_MAX (no maximum session duration).

    +
    +

    Declaration

    +
    +

    Swift

    +
    open var maximumSessionDuration: UInt64 { get set }
    + +
    +
  • @@ -548,9 +714,9 @@

    Identity
  • @@ -581,15 +747,67 @@

    Identity mixpanelInstance.identify(mixpanelInstance.distinctId).

    +
    +

    Declaration

    +
    +

    Swift

    +
    public func identify(distinctId: String, usePeople: Bool = true, completion: (() -> Void)? = nil)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + distinctId + + +
    +

    string that uniquely identifies the current user

    +
    +
    + + usePeople + + +
    +

    boolean that controls whether or not to set the people distinctId to the event distinctId. +This should only be set to false if you wish to prevent people profile updates for that user.

    +
    +
    + + completion + + +
    +

    an optional completion handler for when the identify has completed.

    +
    +
    +
  • @@ -610,15 +828,92 @@

    Identity

    mixpanelInstance.createAlias("Newer ID", distinctId: mixpanelInstance.distinctId)

    +
    +

    Declaration

    +
    +

    Swift

    +
    public func createAlias(_ alias: String, distinctId: String, usePeople: Bool = true, andIdentify: Bool = true, completion: (() -> Void)? = nil)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + + + + + + + + + +
    + + alias + + +
    +

    A unique identifier that you want to use as an identifier for this user.

    +
    +
    + + distinctId + + +
    +

    The current user identifier.

    +
    +
    + + usePeople + + +
    +

    boolean that controls whether or not to set the people distinctId to the event distinctId.

    +
    +
    + + andIdentify + + +
    +

    an optional boolean that controls whether or not to call ‘identify’ with your current +user identifier(not alias). Default to true for keeping your signup funnels working correctly in most cases.

    +
    +
    + + completion + + +
    +

    an optional completion handler for when the createAlias has completed. +This should only be set to false if you wish to prevent people profile updates for that user.

    +
    +
    +
  • @@ -630,6 +925,33 @@

    Identity Useful if your app’s user logs out.

    +
    +

    Declaration

    +
    +

    Swift

    +
    public func reset(completion: (() -> Void)? = nil)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + completion + + +
    +

    an optional completion handler for when the reset has completed.

    +
    +
    +
  • @@ -649,9 +971,9 @@

    Persistence
  • @@ -659,7 +981,16 @@

    Persistence
    - +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func archive()
    + +

    @@ -680,9 +1011,9 @@

    Flush
  • @@ -693,11 +1024,50 @@

    Flush

    Uploads queued data to the Mixpanel server.

    By default, queued data is flushed to the Mixpanel servers every minute (the -default for flushInterval), and on background (since -flushOnBackground is on by default). You only need to call this +default for flushInterval), and on background (since +flushOnBackground is on by default). You only need to call this method manually if you want to force a flush at a particular moment.

    +
    +

    Declaration

    +
    +

    Swift

    +
    public func flush(performFullFlush: Bool = false, completion: (() -> Void)? = nil)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + performFullFlush + + +
    +

    A optional boolean value indicating whether a full flush should be performed. If true, a full flush will be triggered, sending all events to the server. Default to false, a partial flush will be executed for reducing memory footprint.

    +
    +
    + + completion + + +
    +

    an optional completion handler for when the flush has completed.

    +
    +
    +
  • @@ -717,9 +1087,9 @@

    Track
  • @@ -736,15 +1106,54 @@

    Track If the event is being timed, the timer will stop and be added as a property.

    +
    +

    Declaration

    +
    +

    Swift

    +
    public func track(event: String?, properties: Properties? = nil)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + event + + +
    +

    event name

    +
    +
    + + properties + + +
    +

    properties dictionary

    +
    +
    +
  • @@ -761,15 +1170,66 @@

    Track If the event is being timed, the timer will stop and be added as a property.

    +
    +

    Declaration

    +
    +

    Swift

    +
    public func trackWithGroups(event: String?, properties: Properties? = nil, groups: Properties?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + event + + +
    +

    event name

    +
    +
    + + properties + + +
    +

    properties dictionary

    +
    +
    + + groups + + +
    +

    groups dictionary

    +
    +
    +
  • @@ -777,7 +1237,16 @@

    Track
    - +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func getGroup(groupKey: String, groupID: MixpanelType) -> Group
    + +

    @@ -785,9 +1254,9 @@

    Track
  • @@ -816,15 +1285,42 @@

    Track

    +
    +

    Declaration

    +
    +

    Swift

    +
    public func time(event: String)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + event + + +
    +

    the event name to be timed

    +
    +
    +
  • @@ -835,15 +1331,42 @@

    Track

    Retrieves the time elapsed for the named event since time(event:) was called.

    +
    +

    Declaration

    +
    +

    Swift

    +
    public func eventElapsedTime(event: String) -> Double
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + event + + +
    +

    the name of the event to be tracked that was passed to time(event:)

    +
    +
    +
  • @@ -854,15 +1377,23 @@

    Track

    Clears all current event timers.

    +
    +

    Declaration

    +
    +

    Swift

    +
    public func clearTimedEvents()
    + +
    +
  • @@ -873,15 +1404,42 @@

    Track

    Clears the event timer for the named event.

    +
    +

    Declaration

    +
    +

    Swift

    +
    public func clearTimedEvent(event: String)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + event + + +
    +

    the name of the event to clear the timer for

    +
    +
    +
  • @@ -892,15 +1450,27 @@

    Track

    Returns the currently set super properties.

    +
    +

    Declaration

    +
    +

    Swift

    +
    public func currentSuperProperties() -> [String : Any]
    + +
    +
    +
    +

    Return Value

    +

    the current super properties

    +
  • @@ -911,15 +1481,23 @@

    Track

    Clears all currently set super properties.

    +
    +

    Declaration

    +
    +

    Swift

    +
    public func clearSuperProperties()
    + +
    +
  • @@ -936,15 +1514,42 @@

    Track MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.

    +
    +

    Declaration

    +
    +

    Swift

    +
    public func registerSuperProperties(_ properties: Properties)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + properties + + +
    +

    properties dictionary

    +
    +
    +
  • @@ -959,15 +1564,55 @@

    Track MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.

    +
    +

    Declaration

    +
    +

    Swift

    +
    public func registerSuperPropertiesOnce(_ properties: Properties,
    +                                      defaultValue: MixpanelType? = nil)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + properties + + +
    +

    properties dictionary

    +
    +
    + + defaultValue + + +
    +

    Optional. overwrite existing properties that have this value

    +
    +
    +
  • @@ -986,15 +1631,42 @@

    Track registered.

    +
    +

    Declaration

    +
    +

    Swift

    +
    public func unregisterSuperProperty(_ propertyName: String)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + propertyName + + +
    +

    array of property name strings to remove

    +
    +
    +
  • @@ -1005,15 +1677,54 @@

    Track

    Convenience method to set a single group the user belongs to.

    +
    +

    Declaration

    +
    +

    Swift

    +
    public func setGroup(groupKey: String, groupID: MixpanelType)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + groupKey + + +
    +

    The property name associated with this group type (must already have been set up).

    +
    +
    + + groupID + + +
    +

    The group the user belongs to.

    +
    +
    +
  • @@ -1024,15 +1735,54 @@

    Track

    Set the groups this user belongs to.

    +
    +

    Declaration

    +
    +

    Swift

    +
    public func setGroup(groupKey: String, groupIDs: [MixpanelType])
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + groupKey + + +
    +

    The property name associated with this group type (must already have been set up).

    +
    +
    + + groupIDs + + +
    +

    The list of groups the user belongs to.

    +
    +
    +
  • @@ -1043,15 +1793,54 @@

    Track

    Add a group to this user’s membership for a particular group key

    +
    +

    Declaration

    +
    +

    Swift

    +
    public func addGroup(groupKey: String, groupID: MixpanelType)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + groupKey + + +
    +

    The property name associated with this group type (must already have been set up).

    +
    +
    + + groupID + + +
    +

    The new group the user belongs to.

    +
    +
    +
  • @@ -1062,15 +1851,54 @@

    Track

    Remove a group from this user’s membership for a particular group key

    +
    +

    Declaration

    +
    +

    Swift

    +
    public func removeGroup(groupKey: String, groupID: MixpanelType)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + groupKey + + +
    +

    The property name associated with this group type (must already have been set up).

    +
    +
    + + groupID + + +
    +

    The group value to remove.

    +
    +
    +
  • @@ -1084,15 +1912,23 @@

    Track to be sent back to the Mixpanel server.

    +
    +

    Declaration

    +
    +

    Swift

    +
    public func optOutTracking()
    + +
    +
  • @@ -1108,15 +1944,55 @@

    Track

    This method will internally track an opt in event to your project.

    +
    +

    Declaration

    +
    +

    Swift

    +
    public func optInTracking(distinctId: String? = nil, properties: Properties? = nil)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + distintId + + +
    +

    an optional string to use as the distinct ID for events

    +
    +
    + + properties + + +
    +

    an optional properties dictionary that could be passed to add properties to the opt-in event +that is sent to Mixpanel

    +
    +
    +
  • @@ -1127,6 +2003,18 @@

    Track

    Returns if the current user has opted out tracking.

    +
    +

    Declaration

    +
    +

    Swift

    +
    public func hasOptedOutTracking() -> Bool
    + +
    +
    +
    +

    Return Value

    +

    the current super opted out tracking status

    +
  • @@ -1135,7 +2023,7 @@

    Track diff --git a/docs/Classes/People.html b/docs/Classes/People.html index 52246f6e0..43edd3518 100644 --- a/docs/Classes/People.html +++ b/docs/Classes/People.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.2.0 Docs (0% documented)

    +

    Mixpanel 4.2.1 Docs (84% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases

  • @@ -128,6 +128,13 @@

    People

    +
    +
    + +
    open class People
    + +
    +

    Access to the Mixpanel People API, available as an accessible variable from the main Mixpanel instance.

    @@ -138,9 +145,9 @@

    People

  • @@ -155,6 +162,14 @@

    People

    current time for all $set, $append, and $add operations

    +
    +

    Declaration

    +
    +

    Swift

    +
    open var ignoreTime: Bool
    + +
    +
  • @@ -174,9 +189,9 @@

    People
  • @@ -200,15 +215,42 @@

    People

    +
    +

    Declaration

    +
    +

    Swift

    +
    open func set(properties: Properties)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + properties + + +
    +

    properties dictionary

    +
    +
    +
  • @@ -222,15 +264,54 @@

    People MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.

    +
    +

    Declaration

    +
    +

    Swift

    +
    open func set(property: String, to: MixpanelType)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + property + + +
    +

    property name

    +
    +
    + + to + + +
    +

    property value

    +
    +
    +
  • @@ -247,15 +328,42 @@

    People representing the first time something happened.

    +
    +

    Declaration

    +
    +

    Swift

    +
    open func setOnce(properties: Properties)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + properties + + +
    +

    properties dictionary

    +
    +
    +
  • @@ -270,15 +378,42 @@

    People that don’t exist there will be no effect.

    +
    +

    Declaration

    +
    +

    Swift

    +
    open func unset(properties: [String])
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + properties + + +
    +

    properties array

    +
    +
    +
  • @@ -293,15 +428,42 @@

    People will be set to the increment amount. Property values must be number objects.

    +
    +

    Declaration

    +
    +

    Swift

    +
    open func increment(properties: Properties)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + properties + + +
    +

    properties array

    +
    +
    +
  • @@ -313,15 +475,54 @@

    People amount.

    +
    +

    Declaration

    +
    +

    Swift

    +
    open func increment(property: String, by: Double)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + property + + +
    +

    property name

    +
    +
    + + by + + +
    +

    amount to increment by

    +
    +
    +
  • @@ -335,15 +536,42 @@

    People MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.

    +
    +

    Declaration

    +
    +

    Swift

    +
    open func append(properties: Properties)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + properties + + +
    +

    mapping of list property names to values to append

    +
    +
    +
  • @@ -357,15 +585,42 @@

    People MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.

    +
    +

    Declaration

    +
    +

    Swift

    +
    open func remove(properties: Properties)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + properties + + +
    +

    mapping of list property names to values to remove

    +
    +
    +
  • @@ -378,15 +633,42 @@

    People

    Property values must be array objects.

    +
    +

    Declaration

    +
    +

    Swift

    +
    open func union(properties: Properties)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + properties + + +
    +

    mapping of list property names to lists to union

    +
    +
    +
  • @@ -402,15 +684,54 @@

    People revenue analytics to see which products are generating the most revenue.

    +
    +

    Declaration

    +
    +

    Swift

    +
    open func trackCharge(amount: Double, properties: Properties? = nil)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + amount + + +
    +

    amount of revenue received

    +
    +
    + + properties + + +
    +

    Optional. properties dictionary

    +
    +
    +
  • @@ -421,15 +742,23 @@

    People

    Delete current user’s revenue history.

    +
    +

    Declaration

    +
    +

    Swift

    +
    open func clearCharges()
    + +
    +
  • @@ -440,6 +769,14 @@

    People

    Delete current user’s record from Mixpanel People.

    +
    +

    Declaration

    +
    +

    Swift

    +
    open func deleteUser()
    + +
    +
  • @@ -448,7 +785,7 @@

    People diff --git a/docs/Extensions.html b/docs/Extensions.html index 42ac11323..ad311ad41 100644 --- a/docs/Extensions.html +++ b/docs/Extensions.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.2.0 Docs (0% documented)

    +

    Mixpanel 4.2.1 Docs (84% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases @@ -137,9 +137,9 @@

    Extensions

  • - + - Optional + Optional
    @@ -150,15 +150,23 @@

    Extensions

    See more
    +
    +

    Declaration

    +
    +

    Swift

    +
    extension Optional: MixpanelType
    + +
    +
  • - + - String + String
    @@ -169,15 +177,23 @@

    Extensions

    See more
    +
    +

    Declaration

    +
    +

    Swift

    +
    extension String: MixpanelType
    + +
    +
  • - + - NSString + NSString
    @@ -188,15 +204,23 @@

    Extensions

    See more
    +
    +

    Declaration

    +
    +

    Swift

    +
    extension NSString: MixpanelType
    + +
    +
  • - + - NSNumber + NSNumber
    @@ -207,15 +231,23 @@

    Extensions

    See more
    +
    +

    Declaration

    +
    +

    Swift

    +
    extension NSNumber: MixpanelType
    + +
    +
  • - + - Int + Int
    @@ -226,15 +258,23 @@

    Extensions

    See more
    +
    +

    Declaration

    +
    +

    Swift

    +
    extension Int: MixpanelType
    + +
    +
  • - + - UInt + UInt
    @@ -245,15 +285,23 @@

    Extensions

    See more
    +
    +

    Declaration

    +
    +

    Swift

    +
    extension UInt: MixpanelType
    + +
    +
  • - + - Double + Double
    @@ -264,15 +312,23 @@

    Extensions

    See more
    +
    +

    Declaration

    +
    +

    Swift

    +
    extension Double: MixpanelType
    + +
    +
  • - + - Float + Float
    @@ -283,15 +339,23 @@

    Extensions

    See more
    +
    +

    Declaration

    +
    +

    Swift

    +
    extension Float: MixpanelType
    + +
    +
  • - + - Bool + Bool
    @@ -302,15 +366,23 @@

    Extensions

    See more
    +
    +

    Declaration

    +
    +

    Swift

    +
    extension Bool: MixpanelType
    + +
    +
  • - + - Date + Date
    @@ -321,15 +393,23 @@

    Extensions

    See more
    +
    +

    Declaration

    +
    +

    Swift

    +
    extension Date: MixpanelType
    + +
    +
  • - + - URL + URL
    @@ -340,15 +420,23 @@

    Extensions

    See more
    +
    +

    Declaration

    +
    +

    Swift

    +
    extension URL: MixpanelType
    + +
    +
  • - + - NSNull + NSNull
    @@ -359,15 +447,23 @@

    Extensions

    See more
    +
    +

    Declaration

    +
    +

    Swift

    +
    extension NSNull: MixpanelType
    + +
    +
  • - + - Array + Array
    @@ -378,15 +474,23 @@

    Extensions

    See more
    +
    +

    Declaration

    +
    +

    Swift

    +
    extension Array: MixpanelType
    + +
    +
  • - + - NSArray + NSArray
    @@ -397,15 +501,23 @@

    Extensions

    See more
    +
    +

    Declaration

    +
    +

    Swift

    +
    extension NSArray: MixpanelType
    + +
    +
  • @@ -416,6 +528,14 @@

    Extensions

    See more
    +
    +

    Declaration

    +
    +

    Swift

    +
    extension Dictionary: MixpanelType
    + +
    +
  • @@ -424,7 +544,7 @@

    Extensions

    diff --git a/docs/Extensions/Array.html b/docs/Extensions/Array.html index 9bfaaf489..8bf3ea544 100644 --- a/docs/Extensions/Array.html +++ b/docs/Extensions/Array.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.2.0 Docs (0% documented)

    +

    Mixpanel 4.2.1 Docs (84% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases @@ -128,6 +128,13 @@

    Array

    +
    +
    + +
    extension Array: MixpanelType
    + +
    +
    @@ -136,9 +143,9 @@

    Array

  • @@ -149,15 +156,23 @@

    Array

    Checks if this object has nested object types that Mixpanel supports.

    +
    +

    Declaration

    +
    +

    Swift

    +
    public func isValidNestedTypeAndValue() -> Bool
    + +
    +
  • @@ -165,7 +180,16 @@

    Array

    - +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func equals(rhs: MixpanelType) -> Bool
    + +
    @@ -175,7 +199,7 @@

    Array

    diff --git a/docs/Extensions/Bool.html b/docs/Extensions/Bool.html index 3c4333f82..c6a2008d2 100644 --- a/docs/Extensions/Bool.html +++ b/docs/Extensions/Bool.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.2.0 Docs (0% documented)

    +

    Mixpanel 4.2.1 Docs (84% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases
  • @@ -128,6 +128,13 @@

    Bool

    +
    +
    + +
    extension Bool: MixpanelType
    + +
    +
    @@ -136,9 +143,9 @@

    Bool

  • @@ -150,15 +157,23 @@

    Bool

    Will always return true.

    +
    +

    Declaration

    +
    +

    Swift

    +
    public func isValidNestedTypeAndValue() -> Bool
    + +
    +
  • @@ -166,7 +181,16 @@

    Bool

    - +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func equals(rhs: MixpanelType) -> Bool
    + +
    @@ -176,7 +200,7 @@

    Bool

    diff --git a/docs/Extensions/Date.html b/docs/Extensions/Date.html index 26bb102a4..464c0642a 100644 --- a/docs/Extensions/Date.html +++ b/docs/Extensions/Date.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.2.0 Docs (0% documented)

    +

    Mixpanel 4.2.1 Docs (84% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases
  • @@ -128,6 +128,13 @@

    Date

    +
    +
    + +
    extension Date: MixpanelType
    + +
    +
    @@ -136,9 +143,9 @@

    Date

  • @@ -150,15 +157,23 @@

    Date

    Will always return true.

    +
    +

    Declaration

    +
    +

    Swift

    +
    public func isValidNestedTypeAndValue() -> Bool
    + +
    +
  • @@ -166,7 +181,16 @@

    Date

    - +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func equals(rhs: MixpanelType) -> Bool
    + +
    @@ -176,7 +200,7 @@

    Date

  • diff --git a/docs/Extensions/Dictionary.html b/docs/Extensions/Dictionary.html index 7bd271e7e..79471f42f 100644 --- a/docs/Extensions/Dictionary.html +++ b/docs/Extensions/Dictionary.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.2.0 Docs (0% documented)

    +

    Mixpanel 4.2.1 Docs (84% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases @@ -128,6 +128,13 @@

    Dictionary

    +
    +
    + +
    extension Dictionary: MixpanelType
    + +
    +
    @@ -136,9 +143,9 @@

    Dictionary

  • @@ -149,15 +156,23 @@

    Dictionary

    Checks if this object has nested object types that Mixpanel supports.

    +
    +

    Declaration

    +
    +

    Swift

    +
    public func isValidNestedTypeAndValue() -> Bool
    + +
    +
  • @@ -165,7 +180,16 @@

    Dictionary

    - +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func equals(rhs: MixpanelType) -> Bool
    + +
    @@ -175,7 +199,7 @@

    Dictionary

    diff --git a/docs/Extensions/Double.html b/docs/Extensions/Double.html index 83e731283..747985c15 100644 --- a/docs/Extensions/Double.html +++ b/docs/Extensions/Double.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.2.0 Docs (0% documented)

    +

    Mixpanel 4.2.1 Docs (84% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases
  • @@ -128,6 +128,13 @@

    Double

    +
    +
    + +
    extension Double: MixpanelType
    + +
    +
    @@ -136,9 +143,9 @@

    Double

  • @@ -150,15 +157,23 @@

    Double

    Will always return true.

    +
    +

    Declaration

    +
    +

    Swift

    +
    public func isValidNestedTypeAndValue() -> Bool
    + +
    +
  • @@ -166,7 +181,16 @@

    Double

    - +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func equals(rhs: MixpanelType) -> Bool
    + +
    @@ -176,7 +200,7 @@

    Double

    diff --git a/docs/Extensions/Float.html b/docs/Extensions/Float.html index 6d3852839..e3a8476c1 100644 --- a/docs/Extensions/Float.html +++ b/docs/Extensions/Float.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.2.0 Docs (0% documented)

    +

    Mixpanel 4.2.1 Docs (84% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases
  • @@ -128,6 +128,13 @@

    Float

    +
    +
    + +
    extension Float: MixpanelType
    + +
    +
    @@ -136,9 +143,9 @@

    Float

  • @@ -150,15 +157,23 @@

    Float

    Will always return true.

    +
    +

    Declaration

    +
    +

    Swift

    +
    public func isValidNestedTypeAndValue() -> Bool
    + +
    +
  • @@ -166,7 +181,16 @@

    Float

    - +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func equals(rhs: MixpanelType) -> Bool
    + +
    @@ -176,7 +200,7 @@

    Float

  • diff --git a/docs/Extensions/Int.html b/docs/Extensions/Int.html index ed32e1223..ee41b97d6 100644 --- a/docs/Extensions/Int.html +++ b/docs/Extensions/Int.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.2.0 Docs (0% documented)

    +

    Mixpanel 4.2.1 Docs (84% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases @@ -128,6 +128,13 @@

    Int

    +
    +
    + +
    extension Int: MixpanelType
    + +
    +
    @@ -136,9 +143,9 @@

    Int

  • @@ -150,15 +157,23 @@

    Int

    Will always return true.

    +
    +

    Declaration

    +
    +

    Swift

    +
    public func isValidNestedTypeAndValue() -> Bool
    + +
    +
  • @@ -166,7 +181,16 @@

    Int

    - +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func equals(rhs: MixpanelType) -> Bool
    + +
    @@ -176,7 +200,7 @@

    Int

    diff --git a/docs/Extensions/NSArray.html b/docs/Extensions/NSArray.html index 054c400b3..6ad9ae996 100644 --- a/docs/Extensions/NSArray.html +++ b/docs/Extensions/NSArray.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.2.0 Docs (0% documented)

    +

    Mixpanel 4.2.1 Docs (84% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases
  • @@ -128,6 +128,13 @@

    NSArray

    +
    +
    + +
    extension NSArray: MixpanelType
    + +
    +
    @@ -136,9 +143,9 @@

    NSArray

  • @@ -149,15 +156,23 @@

    NSArray

    Checks if this object has nested object types that Mixpanel supports.

    +
    +

    Declaration

    +
    +

    Swift

    +
    public func isValidNestedTypeAndValue() -> Bool
    + +
    +
  • @@ -165,7 +180,16 @@

    NSArray

    - +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func equals(rhs: MixpanelType) -> Bool
    + +
    @@ -175,7 +199,7 @@

    NSArray

    diff --git a/docs/Extensions/NSNull.html b/docs/Extensions/NSNull.html index 8543537d0..bdd8091bb 100644 --- a/docs/Extensions/NSNull.html +++ b/docs/Extensions/NSNull.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.2.0 Docs (0% documented)

    +

    Mixpanel 4.2.1 Docs (84% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases
  • @@ -128,6 +128,13 @@

    NSNull

    +
    +
    + +
    extension NSNull: MixpanelType
    + +
    +
    @@ -136,9 +143,9 @@

    NSNull

  • @@ -150,15 +157,23 @@

    NSNull

    Will always return true.

    +
    +

    Declaration

    +
    +

    Swift

    +
    public func isValidNestedTypeAndValue() -> Bool
    + +
    +
  • @@ -166,7 +181,16 @@

    NSNull

    - +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func equals(rhs: MixpanelType) -> Bool
    + +
    @@ -176,7 +200,7 @@

    NSNull

  • diff --git a/docs/Extensions/NSNumber.html b/docs/Extensions/NSNumber.html index fc17886fe..84ef36cbe 100644 --- a/docs/Extensions/NSNumber.html +++ b/docs/Extensions/NSNumber.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.2.0 Docs (0% documented)

    +

    Mixpanel 4.2.1 Docs (84% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases @@ -128,6 +128,13 @@

    NSNumber

    +
    +
    + +
    extension NSNumber: MixpanelType
    + +
    +
    @@ -136,9 +143,9 @@

    NSNumber

  • @@ -150,15 +157,23 @@

    NSNumber

    Will always return true.

    +
    +

    Declaration

    +
    +

    Swift

    +
    public func isValidNestedTypeAndValue() -> Bool
    + +
    +
  • @@ -166,7 +181,16 @@

    NSNumber

    - +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func equals(rhs: MixpanelType) -> Bool
    + +
    @@ -176,7 +200,7 @@

    NSNumber

    diff --git a/docs/Extensions/NSString.html b/docs/Extensions/NSString.html index 3c77aaa5a..720c22d15 100644 --- a/docs/Extensions/NSString.html +++ b/docs/Extensions/NSString.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.2.0 Docs (0% documented)

    +

    Mixpanel 4.2.1 Docs (84% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases
  • @@ -128,6 +128,13 @@

    NSString

    +
    +
    + +
    extension NSString: MixpanelType
    + +
    +
    @@ -136,9 +143,9 @@

    NSString

  • @@ -150,15 +157,23 @@

    NSString

    Will always return true.

    +
    +

    Declaration

    +
    +

    Swift

    +
    public func isValidNestedTypeAndValue() -> Bool
    + +
    +
  • @@ -166,7 +181,16 @@

    NSString

    - +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func equals(rhs: MixpanelType) -> Bool
    + +
    @@ -176,7 +200,7 @@

    NSString

    diff --git a/docs/Extensions/Optional.html b/docs/Extensions/Optional.html index c1551ec22..0245f9bae 100644 --- a/docs/Extensions/Optional.html +++ b/docs/Extensions/Optional.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.2.0 Docs (0% documented)

    +

    Mixpanel 4.2.1 Docs (84% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases
  • @@ -128,6 +128,13 @@

    Optional

    +
    +
    + +
    extension Optional: MixpanelType
    + +
    +
    @@ -136,9 +143,9 @@

    Optional

  • @@ -149,15 +156,23 @@

    Optional

    Checks if this object has nested object types that Mixpanel supports.

    +
    +

    Declaration

    +
    +

    Swift

    +
    public func isValidNestedTypeAndValue() -> Bool
    + +
    +
  • @@ -165,7 +180,16 @@

    Optional

    - +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func equals(rhs: MixpanelType) -> Bool
    + +
    @@ -175,7 +199,7 @@

    Optional

  • diff --git a/docs/Extensions/String.html b/docs/Extensions/String.html index 9d28e60f7..85a850158 100644 --- a/docs/Extensions/String.html +++ b/docs/Extensions/String.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.2.0 Docs (0% documented)

    +

    Mixpanel 4.2.1 Docs (84% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases @@ -128,6 +128,13 @@

    String

    +
    +
    + +
    extension String: MixpanelType
    + +
    +
    @@ -136,9 +143,9 @@

    String

  • @@ -150,15 +157,23 @@

    String

    Will always return true.

    +
    +

    Declaration

    +
    +

    Swift

    +
    public func isValidNestedTypeAndValue() -> Bool
    + +
    +
  • @@ -166,7 +181,16 @@

    String

    - +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func equals(rhs: MixpanelType) -> Bool
    + +
    @@ -176,7 +200,7 @@

    String

    diff --git a/docs/Extensions/UInt.html b/docs/Extensions/UInt.html index 3b2cca183..62ea6be0c 100644 --- a/docs/Extensions/UInt.html +++ b/docs/Extensions/UInt.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.2.0 Docs (0% documented)

    +

    Mixpanel 4.2.1 Docs (84% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases
  • @@ -128,6 +128,13 @@

    UInt

    +
    +
    + +
    extension UInt: MixpanelType
    + +
    +
    @@ -136,9 +143,9 @@

    UInt

  • @@ -150,15 +157,23 @@

    UInt

    Will always return true.

    +
    +

    Declaration

    +
    +

    Swift

    +
    public func isValidNestedTypeAndValue() -> Bool
    + +
    +
  • @@ -166,7 +181,16 @@

    UInt

    - +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func equals(rhs: MixpanelType) -> Bool
    + +
    @@ -176,7 +200,7 @@

    UInt

    diff --git a/docs/Extensions/URL.html b/docs/Extensions/URL.html index 62228c8e1..8f13a99ac 100644 --- a/docs/Extensions/URL.html +++ b/docs/Extensions/URL.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.2.0 Docs (0% documented)

    +

    Mixpanel 4.2.1 Docs (84% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases
  • @@ -128,6 +128,13 @@

    URL

    +
    +
    + +
    extension URL: MixpanelType
    + +
    +
    @@ -136,9 +143,9 @@

    URL

  • @@ -150,15 +157,23 @@

    URL

    Will always return true.

    +
    +

    Declaration

    +
    +

    Swift

    +
    public func isValidNestedTypeAndValue() -> Bool
    + +
    +
  • @@ -166,7 +181,16 @@

    URL

    - +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func equals(rhs: MixpanelType) -> Bool
    + +
    @@ -176,7 +200,7 @@

    URL

  • diff --git a/docs/Protocols.html b/docs/Protocols.html index d7b639106..c2d12fbe9 100644 --- a/docs/Protocols.html +++ b/docs/Protocols.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.2.0 Docs (0% documented)

    +

    Mixpanel 4.2.1 Docs (84% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases @@ -137,9 +137,9 @@

    Protocols

  • @@ -151,15 +151,23 @@

    Protocols

    See more
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol MixpanelDelegate : AnyObject
    + +
    +
  • @@ -173,6 +181,14 @@

    Protocols

    See more
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol MixpanelType
    + +
    +
  • @@ -181,7 +197,7 @@

    Protocols

    diff --git a/docs/Protocols/MixpanelDelegate.html b/docs/Protocols/MixpanelDelegate.html index 1e5a63360..9427f4f2b 100644 --- a/docs/Protocols/MixpanelDelegate.html +++ b/docs/Protocols/MixpanelDelegate.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.2.0 Docs (0% documented)

    +

    Mixpanel 4.2.1 Docs (84% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases @@ -128,6 +128,13 @@

    MixpanelDelegate

    +
    +
    + +
    public protocol MixpanelDelegate : AnyObject
    + +
    +

    Delegate protocol for controlling the Mixpanel API’s network behavior.

    @@ -137,9 +144,9 @@

    MixpanelDelegate

  • @@ -150,6 +157,37 @@

    MixpanelDelegate

    Asks the delegate if data should be uploaded to the server.

    +
    +

    Declaration

    +
    +

    Swift

    +
    func mixpanelWillFlush(_ mixpanel: MixpanelInstance) -> Bool
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + mixpanel + + +
    +

    The mixpanel instance

    +
    +
    +
    +
    +

    Return Value

    +

    return true to upload now or false to defer until later

    +
  • @@ -158,7 +196,7 @@

    MixpanelDelegate

    diff --git a/docs/Protocols/MixpanelType.html b/docs/Protocols/MixpanelType.html index 718924b0b..4e70d7279 100644 --- a/docs/Protocols/MixpanelType.html +++ b/docs/Protocols/MixpanelType.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.2.0 Docs (0% documented)

    +

    Mixpanel 4.2.1 Docs (84% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases @@ -128,6 +128,13 @@

    MixpanelType

    +
    +
    + +
    public protocol MixpanelType
    + +
    +

    Property keys must be String objects and the supported value types need to conform to MixpanelType. MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull. Numbers are not NaN or infinity

    @@ -139,9 +146,9 @@

    MixpanelType

  • @@ -152,15 +159,23 @@

    MixpanelType

    Checks if this object has nested object types that Mixpanel supports.

    +
    +

    Declaration

    +
    +

    Swift

    +
    func isValidNestedTypeAndValue() -> Bool
    + +
    +
  • @@ -168,7 +183,16 @@

    MixpanelType

    - +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func equals(rhs: MixpanelType) -> Bool
    + +
    @@ -178,7 +202,7 @@

    MixpanelType

    diff --git a/docs/Typealiases.html b/docs/Typealiases.html index 7fe5a64ad..2a2085c21 100644 --- a/docs/Typealiases.html +++ b/docs/Typealiases.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.2.0 Docs (0% documented)

    +

    Mixpanel 4.2.1 Docs (84% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases
  • @@ -137,9 +137,9 @@

    Type Aliases

  • @@ -147,7 +147,16 @@

    Type Aliases

    - +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public typealias Properties = [String : MixpanelType]
    + +
    @@ -157,7 +166,7 @@

    Type Aliases

    diff --git a/docs/badge.svg b/docs/badge.svg index a5d7e554e..c8d6b742c 100644 --- a/docs/badge.svg +++ b/docs/badge.svg @@ -1,15 +1,15 @@ - + - + - - + + @@ -18,11 +18,11 @@ documentation - - 0% + + 84% - - 0% + + 84% diff --git a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Classes.html b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Classes.html index 85428e555..a0238171f 100644 --- a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Classes.html +++ b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Classes.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.2.0 Docs (0% documented)

    +

    Mixpanel 4.2.1 Docs (84% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases
  • @@ -137,9 +137,9 @@

    Classes

  • - + - Group + Group
    @@ -152,15 +152,23 @@

    Classes

    See more
    +
    +

    Declaration

    +
    +

    Swift

    +
    open class Group
    + +
    +
  • - + - Mixpanel + Mixpanel
    @@ -172,15 +180,23 @@

    Classes

    See more
    +
    +

    Declaration

    +
    +

    Swift

    +
    open class Mixpanel
    + +
    +
  • @@ -192,15 +208,23 @@

    Classes

    See more
    +
    +

    Declaration

    +
    +

    Swift

    +
    open class MixpanelInstance : CustomDebugStringConvertible, FlushDelegate, AEDelegate
    + +
    +
  • - + - People + People
    @@ -213,6 +237,14 @@

    Classes

    See more
    +
    +

    Declaration

    +
    +

    Swift

    +
    open class People
    + +
    +
  • @@ -221,7 +253,7 @@

    Classes

    diff --git a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Classes/Group.html b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Classes/Group.html index f267f6f73..c723b56a5 100644 --- a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Classes/Group.html +++ b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Classes/Group.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.2.0 Docs (0% documented)

    +

    Mixpanel 4.2.1 Docs (84% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases @@ -128,6 +128,13 @@

    Group

    +
    +
    + +
    open class Group
    + +
    +

    Access to the Mixpanel Groups API, available through the getGroup function from the main Mixpanel instance.

    @@ -147,9 +154,9 @@

    Group
  • @@ -165,15 +172,42 @@

    Group value is overwritten. Other existing properties will not be affected.

    +
    +

    Declaration

    +
    +

    Swift

    +
    open func set(properties: Properties)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + properties + + +
    +

    properties dictionary

    +
    +
    +
  • @@ -187,15 +221,54 @@

    Group MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.

    +
    +

    Declaration

    +
    +

    Swift

    +
    open func set(property: String, to: MixpanelType)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + property + + +
    +

    property name

    +
    +
    + + to + + +
    +

    property value

    +
    +
    +
  • @@ -211,15 +284,42 @@

    Group data about dates representing the first time something happened.

    +
    +

    Declaration

    +
    +

    Swift

    +
    open func setOnce(properties: Properties)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + properties + + +
    +

    properties dictionary

    +
    +
    +
  • @@ -232,15 +332,42 @@

    Group

    For properties that don’t exist there will be no effect.

    +
    +

    Declaration

    +
    +

    Swift

    +
    open func unset(property: String)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + property + + +
    +

    name of the property to unset

    +
    +
    +
  • @@ -254,15 +381,42 @@

    Group MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.

    +
    +

    Declaration

    +
    +

    Swift

    +
    open func remove(key: String, value: MixpanelType)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + properties + + +
    +

    mapping of list property names to values to remove

    +
    +
    +
  • @@ -275,15 +429,42 @@

    Group

    Property values must be array objects.

    +
    +

    Declaration

    +
    +

    Swift

    +
    open func union(key: String, values: [MixpanelType])
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + properties + + +
    +

    mapping of list property names to lists to union

    +
    +
    +
  • @@ -294,6 +475,14 @@

    Group

    Delete group’s record from Mixpanel Groups.

    +
    +

    Declaration

    +
    +

    Swift

    +
    open func deleteGroup()
    + +
    +
  • @@ -302,7 +491,7 @@

    Group diff --git a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Classes/Mixpanel.html b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Classes/Mixpanel.html index 42089c2e4..d01ea85ab 100644 --- a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Classes/Mixpanel.html +++ b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Classes/Mixpanel.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.2.0 Docs (0% documented)

    +

    Mixpanel 4.2.1 Docs (84% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases @@ -128,6 +128,13 @@

    Mixpanel

    +
    +
    + +
    open class Mixpanel
    + +
    +

    The primary class for integrating Mixpanel with your app.

    @@ -137,9 +144,9 @@

    Mixpanel

  • @@ -160,6 +167,131 @@

    Mixpanel

  • +
    +

    Declaration

    +
    +

    Swift

    +
    @discardableResult
    +open class func initialize(token apiToken: String,
    +                           trackAutomaticEvents: Bool,
    +                           flushInterval: Double = 60,
    +                           instanceName: String? = nil,
    +                           optOutTrackingByDefault: Bool = false,
    +                           useUniqueDistinctId: Bool = false,
    +                           superProperties: Properties? = nil,
    +                           serverURL: String? = nil) -> MixpanelInstance
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + token + + +
    +

    your project token

    +
    +
    + + trackAutomaticEvents + + +
    +

    Whether or not to collect common mobile events

    +
    +
    + + flushInterval + + +
    +

    Optional. Interval to run background flushing

    +
    +
    + + instanceName + + +
    +

    Optional. The name you want to uniquely identify the Mixpanel Instance. +It is useful when you want more than one Mixpanel instance under the same project token.

    +
    +
    + + optOutTrackingByDefault + + +
    +

    Optional. Whether or not to be opted out from tracking by default

    +
    +
    + + useUniqueDistinctId + + +
    +

    Optional. whether or not to use the unique device identifier as the distinct_id

    +
    +
    + + superProperties + + +
    +

    Optional. Super properties dictionary to register during initialization

    +
    +
    + + serverURL + + +
    +

    Optional. Mixpanel cluster URL

    +
    +
    +
    +
    +

    Return Value

    +

    returns a mixpanel instance if needed to keep throughout the project. +You can always get the instance by calling getInstance(name)

    +
    @@ -195,9 +327,9 @@

    Mixpanel

  • @@ -208,15 +340,46 @@

    Mixpanel

    Gets the mixpanel instance with the given name

    +
    +

    Declaration

    +
    +

    Swift

    +
    open class func getInstance(name: String) -> MixpanelInstance?
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + name + + +
    +

    the instance name

    +
    +
    +
    +
    +

    Return Value

    +

    returns the mixpanel instance

    +
  • @@ -229,15 +392,27 @@

    Mixpanel

    If not specified explicitly, the main instance is always the last instance added

    +
    +

    Declaration

    +
    +

    Swift

    +
    open class func mainInstance() -> MixpanelInstance
    + +
    +
    +
    +

    Return Value

    +

    returns the main Mixpanel instance

    +
  • @@ -248,15 +423,42 @@

    Mixpanel

    Sets the main instance based on the instance name

    +
    +

    Declaration

    +
    +

    Swift

    +
    open class func setMainInstance(name: String)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + name + + +
    +

    the instance name

    +
    +
    +
  • @@ -267,6 +469,33 @@

    Mixpanel

    Removes an unneeded Mixpanel instance based on its name

    +
    +

    Declaration

    +
    +

    Swift

    +
    open class func removeInstance(name: String)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + name + + +
    +

    the instance name

    +
    +
    +
  • @@ -275,7 +504,7 @@

    Mixpanel

    diff --git a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Classes/MixpanelInstance.html b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Classes/MixpanelInstance.html index ff5c9dbe2..0849a60e6 100644 --- a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Classes/MixpanelInstance.html +++ b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Classes/MixpanelInstance.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.2.0 Docs (0% documented)

    +

    Mixpanel 4.2.1 Docs (84% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases @@ -128,6 +128,13 @@

    MixpanelInstance

    +
    +
    + +
    open class MixpanelInstance : CustomDebugStringConvertible, FlushDelegate, AEDelegate
    + +
    +

    The class that represents the Mixpanel Instance

    @@ -137,9 +144,9 @@

    MixpanelInstance

  • - + - apiToken + apiToken
    @@ -150,15 +157,23 @@

    MixpanelInstance

    apiToken string that identifies the project to track data to

    +
    +

    Declaration

    +
    +

    Swift

    +
    open var apiToken: String
    + +
    +
  • - + - delegate + delegate
    @@ -169,15 +184,23 @@

    MixpanelInstance

    The a MixpanelDelegate object that gives control over Mixpanel network activity.

    +
    +

    Declaration

    +
    +

    Swift

    +
    open weak var delegate: MixpanelDelegate?
    + +
    +
  • @@ -188,15 +211,23 @@

    MixpanelInstance

    distinctId string that uniquely identifies the current user.

    +
    +

    Declaration

    +
    +

    Swift

    +
    open var distinctId: String
    + +
    +
  • @@ -207,15 +238,23 @@

    MixpanelInstance

    anonymousId string that uniquely identifies the device.

    +
    +

    Declaration

    +
    +

    Swift

    +
    open var anonymousId: String?
    + +
    +
  • - + - userId + userId
    @@ -226,15 +265,23 @@

    MixpanelInstance

    userId string that identify is called with.

    +
    +

    Declaration

    +
    +

    Swift

    +
    open var userId: String?
    + +
    +
  • @@ -246,15 +293,23 @@

    MixpanelInstance

    already exists in persistence

    +
    +

    Declaration

    +
    +

    Swift

    +
    open var hadPersistedDistinctId: Bool?
    + +
    +
  • - + - alias + alias
    @@ -265,15 +320,23 @@

    MixpanelInstance

    alias string that uniquely identifies the current user.

    +
    +

    Declaration

    +
    +

    Swift

    +
    open var alias: String?
    + +
    +
  • - + - people + people
    @@ -284,15 +347,23 @@

    MixpanelInstance

    Accessor to the Mixpanel People API object.

    +
    +

    Declaration

    +
    +

    Swift

    +
    open var people: People!
    + +
    +
  • @@ -304,15 +375,23 @@

    MixpanelInstance

    data to the Mixpanel servers. Defaults to true.

    +
    +

    Declaration

    +
    +

    Swift

    +
    open var showNetworkActivityIndicator: Bool
    + +
    +
  • @@ -323,15 +402,23 @@

    MixpanelInstance

    This allows enabling or disabling collecting common mobile events,

    +
    +

    Declaration

    +
    +

    Swift

    +
    open var trackAutomaticEventsEnabled: Bool
    + +
    +
  • @@ -344,15 +431,23 @@

    MixpanelInstance

    to upload queued data to the Mixpanel server.

    +
    +

    Declaration

    +
    +

    Swift

    +
    open var flushInterval: Double { get set }
    + +
    +
  • @@ -364,15 +459,23 @@

    MixpanelInstance

    enters the background. Defaults to true.

    +
    +

    Declaration

    +
    +

    Swift

    +
    open var flushOnBackground: Bool { get set }
    + +
    +
  • @@ -385,15 +488,23 @@

    MixpanelInstance

    Defaults to true.

    +
    +

    Declaration

    +
    +

    Swift

    +
    open var useIPAddressForGeoLocation: Bool { get set }
    + +
    +
  • @@ -406,15 +517,23 @@

    MixpanelInstance

    and the server. The maximum size is 50; any value over 50 will default to 50.

    +
    +

    Declaration

    +
    +

    Swift

    +
    open var flushBatchSize: Int { get set }
    + +
    +
  • @@ -427,15 +546,23 @@

    MixpanelInstance

    https://api.mixpanel.com.

    +
    +

    Declaration

    +
    +

    Swift

    +
    open var serverURL: String { get set }
    + +
    +
  • @@ -445,15 +572,23 @@

    MixpanelInstance

    +
    +

    Declaration

    +
    +

    Swift

    +
    open var debugDescription: String { get }
    + +
    +
  • @@ -470,15 +605,23 @@

    MixpanelInstance

    +
    +

    Declaration

    +
    +

    Swift

    +
    open var loggingEnabled: Bool { get set }
    + +
    +
  • - + - name + name
    @@ -489,15 +632,23 @@

    MixpanelInstance

    A unique identifier for this MixpanelInstance

    +
    +

    Declaration

    +
    +

    Swift

    +
    public let name: String
    + +
    +
  • @@ -505,19 +656,26 @@

    MixpanelInstance

    -

    The minimum session duration (ms) that is tracked in automatic events. -The default value is 10000 (10 seconds).

    +

    Undocumented

    +
    +

    Declaration

    +
    +

    Swift

    +
    open var minimumSessionDuration: UInt64 { get set }
    + +
    +
  • @@ -529,6 +687,14 @@

    MixpanelInstance

    The default value is UINT64_MAX (no maximum session duration).

    +
    +

    Declaration

    +
    +

    Swift

    +
    open var maximumSessionDuration: UInt64 { get set }
    + +
    +
  • @@ -548,9 +714,9 @@

    Identity
  • @@ -581,15 +747,67 @@

    Identity mixpanelInstance.identify(mixpanelInstance.distinctId).

    +
    +

    Declaration

    +
    +

    Swift

    +
    public func identify(distinctId: String, usePeople: Bool = true, completion: (() -> Void)? = nil)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + distinctId + + +
    +

    string that uniquely identifies the current user

    +
    +
    + + usePeople + + +
    +

    boolean that controls whether or not to set the people distinctId to the event distinctId. +This should only be set to false if you wish to prevent people profile updates for that user.

    +
    +
    + + completion + + +
    +

    an optional completion handler for when the identify has completed.

    +
    +
    +
  • @@ -610,15 +828,92 @@

    Identity

    mixpanelInstance.createAlias("Newer ID", distinctId: mixpanelInstance.distinctId)

    +
    +

    Declaration

    +
    +

    Swift

    +
    public func createAlias(_ alias: String, distinctId: String, usePeople: Bool = true, andIdentify: Bool = true, completion: (() -> Void)? = nil)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + + + + + + + + + +
    + + alias + + +
    +

    A unique identifier that you want to use as an identifier for this user.

    +
    +
    + + distinctId + + +
    +

    The current user identifier.

    +
    +
    + + usePeople + + +
    +

    boolean that controls whether or not to set the people distinctId to the event distinctId.

    +
    +
    + + andIdentify + + +
    +

    an optional boolean that controls whether or not to call ‘identify’ with your current +user identifier(not alias). Default to true for keeping your signup funnels working correctly in most cases.

    +
    +
    + + completion + + +
    +

    an optional completion handler for when the createAlias has completed. +This should only be set to false if you wish to prevent people profile updates for that user.

    +
    +
    +
  • @@ -630,6 +925,33 @@

    Identity Useful if your app’s user logs out.

    +
    +

    Declaration

    +
    +

    Swift

    +
    public func reset(completion: (() -> Void)? = nil)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + completion + + +
    +

    an optional completion handler for when the reset has completed.

    +
    +
    +
  • @@ -649,9 +971,9 @@

    Persistence
  • @@ -659,7 +981,16 @@

    Persistence
    - +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func archive()
    + +

    @@ -680,9 +1011,9 @@

    Flush
  • @@ -693,11 +1024,50 @@

    Flush

    Uploads queued data to the Mixpanel server.

    By default, queued data is flushed to the Mixpanel servers every minute (the -default for flushInterval), and on background (since -flushOnBackground is on by default). You only need to call this +default for flushInterval), and on background (since +flushOnBackground is on by default). You only need to call this method manually if you want to force a flush at a particular moment.

    +
    +

    Declaration

    +
    +

    Swift

    +
    public func flush(performFullFlush: Bool = false, completion: (() -> Void)? = nil)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + performFullFlush + + +
    +

    A optional boolean value indicating whether a full flush should be performed. If true, a full flush will be triggered, sending all events to the server. Default to false, a partial flush will be executed for reducing memory footprint.

    +
    +
    + + completion + + +
    +

    an optional completion handler for when the flush has completed.

    +
    +
    +
  • @@ -717,9 +1087,9 @@

    Track
  • @@ -736,15 +1106,54 @@

    Track If the event is being timed, the timer will stop and be added as a property.

    +
    +

    Declaration

    +
    +

    Swift

    +
    public func track(event: String?, properties: Properties? = nil)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + event + + +
    +

    event name

    +
    +
    + + properties + + +
    +

    properties dictionary

    +
    +
    +
  • @@ -761,15 +1170,66 @@

    Track If the event is being timed, the timer will stop and be added as a property.

    +
    +

    Declaration

    +
    +

    Swift

    +
    public func trackWithGroups(event: String?, properties: Properties? = nil, groups: Properties?)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + + + + + +
    + + event + + +
    +

    event name

    +
    +
    + + properties + + +
    +

    properties dictionary

    +
    +
    + + groups + + +
    +

    groups dictionary

    +
    +
    +
  • @@ -777,7 +1237,16 @@

    Track
    - +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func getGroup(groupKey: String, groupID: MixpanelType) -> Group
    + +

    @@ -785,9 +1254,9 @@

    Track
  • @@ -816,15 +1285,42 @@

    Track

    +
    +

    Declaration

    +
    +

    Swift

    +
    public func time(event: String)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + event + + +
    +

    the event name to be timed

    +
    +
    +
  • @@ -835,15 +1331,42 @@

    Track

    Retrieves the time elapsed for the named event since time(event:) was called.

    +
    +

    Declaration

    +
    +

    Swift

    +
    public func eventElapsedTime(event: String) -> Double
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + event + + +
    +

    the name of the event to be tracked that was passed to time(event:)

    +
    +
    +
  • @@ -854,15 +1377,23 @@

    Track

    Clears all current event timers.

    +
    +

    Declaration

    +
    +

    Swift

    +
    public func clearTimedEvents()
    + +
    +
  • @@ -873,15 +1404,42 @@

    Track

    Clears the event timer for the named event.

    +
    +

    Declaration

    +
    +

    Swift

    +
    public func clearTimedEvent(event: String)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + event + + +
    +

    the name of the event to clear the timer for

    +
    +
    +
  • @@ -892,15 +1450,27 @@

    Track

    Returns the currently set super properties.

    +
    +

    Declaration

    +
    +

    Swift

    +
    public func currentSuperProperties() -> [String : Any]
    + +
    +
    +
    +

    Return Value

    +

    the current super properties

    +
  • @@ -911,15 +1481,23 @@

    Track

    Clears all currently set super properties.

    +
    +

    Declaration

    +
    +

    Swift

    +
    public func clearSuperProperties()
    + +
    +
  • @@ -936,15 +1514,42 @@

    Track MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.

    +
    +

    Declaration

    +
    +

    Swift

    +
    public func registerSuperProperties(_ properties: Properties)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + properties + + +
    +

    properties dictionary

    +
    +
    +
  • @@ -959,15 +1564,55 @@

    Track MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.

    +
    +

    Declaration

    +
    +

    Swift

    +
    public func registerSuperPropertiesOnce(_ properties: Properties,
    +                                      defaultValue: MixpanelType? = nil)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + properties + + +
    +

    properties dictionary

    +
    +
    + + defaultValue + + +
    +

    Optional. overwrite existing properties that have this value

    +
    +
    +
  • @@ -986,15 +1631,42 @@

    Track registered.

    +
    +

    Declaration

    +
    +

    Swift

    +
    public func unregisterSuperProperty(_ propertyName: String)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + propertyName + + +
    +

    array of property name strings to remove

    +
    +
    +
  • @@ -1005,15 +1677,54 @@

    Track

    Convenience method to set a single group the user belongs to.

    +
    +

    Declaration

    +
    +

    Swift

    +
    public func setGroup(groupKey: String, groupID: MixpanelType)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + groupKey + + +
    +

    The property name associated with this group type (must already have been set up).

    +
    +
    + + groupID + + +
    +

    The group the user belongs to.

    +
    +
    +
  • @@ -1024,15 +1735,54 @@

    Track

    Set the groups this user belongs to.

    +
    +

    Declaration

    +
    +

    Swift

    +
    public func setGroup(groupKey: String, groupIDs: [MixpanelType])
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + groupKey + + +
    +

    The property name associated with this group type (must already have been set up).

    +
    +
    + + groupIDs + + +
    +

    The list of groups the user belongs to.

    +
    +
    +
  • @@ -1043,15 +1793,54 @@

    Track

    Add a group to this user’s membership for a particular group key

    +
    +

    Declaration

    +
    +

    Swift

    +
    public func addGroup(groupKey: String, groupID: MixpanelType)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + groupKey + + +
    +

    The property name associated with this group type (must already have been set up).

    +
    +
    + + groupID + + +
    +

    The new group the user belongs to.

    +
    +
    +
  • @@ -1062,15 +1851,54 @@

    Track

    Remove a group from this user’s membership for a particular group key

    +
    +

    Declaration

    +
    +

    Swift

    +
    public func removeGroup(groupKey: String, groupID: MixpanelType)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + groupKey + + +
    +

    The property name associated with this group type (must already have been set up).

    +
    +
    + + groupID + + +
    +

    The group value to remove.

    +
    +
    +
  • @@ -1084,15 +1912,23 @@

    Track to be sent back to the Mixpanel server.

    +
    +

    Declaration

    +
    +

    Swift

    +
    public func optOutTracking()
    + +
    +
  • @@ -1108,15 +1944,55 @@

    Track

    This method will internally track an opt in event to your project.

    +
    +

    Declaration

    +
    +

    Swift

    +
    public func optInTracking(distinctId: String? = nil, properties: Properties? = nil)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + distintId + + +
    +

    an optional string to use as the distinct ID for events

    +
    +
    + + properties + + +
    +

    an optional properties dictionary that could be passed to add properties to the opt-in event +that is sent to Mixpanel

    +
    +
    +
  • @@ -1127,6 +2003,18 @@

    Track

    Returns if the current user has opted out tracking.

    +
    +

    Declaration

    +
    +

    Swift

    +
    public func hasOptedOutTracking() -> Bool
    + +
    +
    +
    +

    Return Value

    +

    the current super opted out tracking status

    +
  • @@ -1135,7 +2023,7 @@

    Track diff --git a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Classes/People.html b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Classes/People.html index 52246f6e0..43edd3518 100644 --- a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Classes/People.html +++ b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Classes/People.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.2.0 Docs (0% documented)

    +

    Mixpanel 4.2.1 Docs (84% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases

  • @@ -128,6 +128,13 @@

    People

    +
    +
    + +
    open class People
    + +
    +

    Access to the Mixpanel People API, available as an accessible variable from the main Mixpanel instance.

    @@ -138,9 +145,9 @@

    People

  • @@ -155,6 +162,14 @@

    People

    current time for all $set, $append, and $add operations

    +
    +

    Declaration

    +
    +

    Swift

    +
    open var ignoreTime: Bool
    + +
    +
  • @@ -174,9 +189,9 @@

    People
  • @@ -200,15 +215,42 @@

    People

    +
    +

    Declaration

    +
    +

    Swift

    +
    open func set(properties: Properties)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + properties + + +
    +

    properties dictionary

    +
    +
    +
  • @@ -222,15 +264,54 @@

    People MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.

    +
    +

    Declaration

    +
    +

    Swift

    +
    open func set(property: String, to: MixpanelType)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + property + + +
    +

    property name

    +
    +
    + + to + + +
    +

    property value

    +
    +
    +
  • @@ -247,15 +328,42 @@

    People representing the first time something happened.

    +
    +

    Declaration

    +
    +

    Swift

    +
    open func setOnce(properties: Properties)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + properties + + +
    +

    properties dictionary

    +
    +
    +
  • @@ -270,15 +378,42 @@

    People that don’t exist there will be no effect.

    +
    +

    Declaration

    +
    +

    Swift

    +
    open func unset(properties: [String])
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + properties + + +
    +

    properties array

    +
    +
    +
  • @@ -293,15 +428,42 @@

    People will be set to the increment amount. Property values must be number objects.

    +
    +

    Declaration

    +
    +

    Swift

    +
    open func increment(properties: Properties)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + properties + + +
    +

    properties array

    +
    +
    +
  • @@ -313,15 +475,54 @@

    People amount.

    +
    +

    Declaration

    +
    +

    Swift

    +
    open func increment(property: String, by: Double)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + property + + +
    +

    property name

    +
    +
    + + by + + +
    +

    amount to increment by

    +
    +
    +
  • @@ -335,15 +536,42 @@

    People MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.

    +
    +

    Declaration

    +
    +

    Swift

    +
    open func append(properties: Properties)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + properties + + +
    +

    mapping of list property names to values to append

    +
    +
    +
  • @@ -357,15 +585,42 @@

    People MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.

    +
    +

    Declaration

    +
    +

    Swift

    +
    open func remove(properties: Properties)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + properties + + +
    +

    mapping of list property names to values to remove

    +
    +
    +
  • @@ -378,15 +633,42 @@

    People

    Property values must be array objects.

    +
    +

    Declaration

    +
    +

    Swift

    +
    open func union(properties: Properties)
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + properties + + +
    +

    mapping of list property names to lists to union

    +
    +
    +
  • @@ -402,15 +684,54 @@

    People revenue analytics to see which products are generating the most revenue.

    +
    +

    Declaration

    +
    +

    Swift

    +
    open func trackCharge(amount: Double, properties: Properties? = nil)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + amount + + +
    +

    amount of revenue received

    +
    +
    + + properties + + +
    +

    Optional. properties dictionary

    +
    +
    +
  • @@ -421,15 +742,23 @@

    People

    Delete current user’s revenue history.

    +
    +

    Declaration

    +
    +

    Swift

    +
    open func clearCharges()
    + +
    +
  • @@ -440,6 +769,14 @@

    People

    Delete current user’s record from Mixpanel People.

    +
    +

    Declaration

    +
    +

    Swift

    +
    open func deleteUser()
    + +
    +
  • @@ -448,7 +785,7 @@

    People diff --git a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions.html b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions.html index 42ac11323..ad311ad41 100644 --- a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions.html +++ b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.2.0 Docs (0% documented)

    +

    Mixpanel 4.2.1 Docs (84% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases @@ -137,9 +137,9 @@

    Extensions

  • - + - Optional + Optional
    @@ -150,15 +150,23 @@

    Extensions

    See more
    +
    +

    Declaration

    +
    +

    Swift

    +
    extension Optional: MixpanelType
    + +
    +
  • - + - String + String
    @@ -169,15 +177,23 @@

    Extensions

    See more
    +
    +

    Declaration

    +
    +

    Swift

    +
    extension String: MixpanelType
    + +
    +
  • - + - NSString + NSString
    @@ -188,15 +204,23 @@

    Extensions

    See more
    +
    +

    Declaration

    +
    +

    Swift

    +
    extension NSString: MixpanelType
    + +
    +
  • - + - NSNumber + NSNumber
    @@ -207,15 +231,23 @@

    Extensions

    See more
    +
    +

    Declaration

    +
    +

    Swift

    +
    extension NSNumber: MixpanelType
    + +
    +
  • - + - Int + Int
    @@ -226,15 +258,23 @@

    Extensions

    See more
    +
    +

    Declaration

    +
    +

    Swift

    +
    extension Int: MixpanelType
    + +
    +
  • - + - UInt + UInt
    @@ -245,15 +285,23 @@

    Extensions

    See more
    +
    +

    Declaration

    +
    +

    Swift

    +
    extension UInt: MixpanelType
    + +
    +
  • - + - Double + Double
    @@ -264,15 +312,23 @@

    Extensions

    See more
    +
    +

    Declaration

    +
    +

    Swift

    +
    extension Double: MixpanelType
    + +
    +
  • - + - Float + Float
    @@ -283,15 +339,23 @@

    Extensions

    See more
    +
    +

    Declaration

    +
    +

    Swift

    +
    extension Float: MixpanelType
    + +
    +
  • - + - Bool + Bool
    @@ -302,15 +366,23 @@

    Extensions

    See more
    +
    +

    Declaration

    +
    +

    Swift

    +
    extension Bool: MixpanelType
    + +
    +
  • - + - Date + Date
    @@ -321,15 +393,23 @@

    Extensions

    See more
    +
    +

    Declaration

    +
    +

    Swift

    +
    extension Date: MixpanelType
    + +
    +
  • - + - URL + URL
    @@ -340,15 +420,23 @@

    Extensions

    See more
    +
    +

    Declaration

    +
    +

    Swift

    +
    extension URL: MixpanelType
    + +
    +
  • - + - NSNull + NSNull
    @@ -359,15 +447,23 @@

    Extensions

    See more
    +
    +

    Declaration

    +
    +

    Swift

    +
    extension NSNull: MixpanelType
    + +
    +
  • - + - Array + Array
    @@ -378,15 +474,23 @@

    Extensions

    See more
    +
    +

    Declaration

    +
    +

    Swift

    +
    extension Array: MixpanelType
    + +
    +
  • - + - NSArray + NSArray
    @@ -397,15 +501,23 @@

    Extensions

    See more
    +
    +

    Declaration

    +
    +

    Swift

    +
    extension NSArray: MixpanelType
    + +
    +
  • @@ -416,6 +528,14 @@

    Extensions

    See more
    +
    +

    Declaration

    +
    +

    Swift

    +
    extension Dictionary: MixpanelType
    + +
    +
  • @@ -424,7 +544,7 @@

    Extensions

    diff --git a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/Array.html b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/Array.html index 9bfaaf489..8bf3ea544 100644 --- a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/Array.html +++ b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/Array.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.2.0 Docs (0% documented)

    +

    Mixpanel 4.2.1 Docs (84% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases @@ -128,6 +128,13 @@

    Array

    +
    +
    + +
    extension Array: MixpanelType
    + +
    +
    @@ -136,9 +143,9 @@

    Array

  • @@ -149,15 +156,23 @@

    Array

    Checks if this object has nested object types that Mixpanel supports.

    +
    +

    Declaration

    +
    +

    Swift

    +
    public func isValidNestedTypeAndValue() -> Bool
    + +
    +
  • @@ -165,7 +180,16 @@

    Array

    - +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func equals(rhs: MixpanelType) -> Bool
    + +
    @@ -175,7 +199,7 @@

    Array

    diff --git a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/Bool.html b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/Bool.html index 3c4333f82..c6a2008d2 100644 --- a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/Bool.html +++ b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/Bool.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.2.0 Docs (0% documented)

    +

    Mixpanel 4.2.1 Docs (84% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases
  • @@ -128,6 +128,13 @@

    Bool

    +
    +
    + +
    extension Bool: MixpanelType
    + +
    +
    @@ -136,9 +143,9 @@

    Bool

  • @@ -150,15 +157,23 @@

    Bool

    Will always return true.

    +
    +

    Declaration

    +
    +

    Swift

    +
    public func isValidNestedTypeAndValue() -> Bool
    + +
    +
  • @@ -166,7 +181,16 @@

    Bool

    - +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func equals(rhs: MixpanelType) -> Bool
    + +
    @@ -176,7 +200,7 @@

    Bool

    diff --git a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/Date.html b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/Date.html index 26bb102a4..464c0642a 100644 --- a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/Date.html +++ b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/Date.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.2.0 Docs (0% documented)

    +

    Mixpanel 4.2.1 Docs (84% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases
  • @@ -128,6 +128,13 @@

    Date

    +
    +
    + +
    extension Date: MixpanelType
    + +
    +
    @@ -136,9 +143,9 @@

    Date

  • @@ -150,15 +157,23 @@

    Date

    Will always return true.

    +
    +

    Declaration

    +
    +

    Swift

    +
    public func isValidNestedTypeAndValue() -> Bool
    + +
    +
  • @@ -166,7 +181,16 @@

    Date

    - +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func equals(rhs: MixpanelType) -> Bool
    + +
    @@ -176,7 +200,7 @@

    Date

  • diff --git a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/Dictionary.html b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/Dictionary.html index 7bd271e7e..79471f42f 100644 --- a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/Dictionary.html +++ b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/Dictionary.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.2.0 Docs (0% documented)

    +

    Mixpanel 4.2.1 Docs (84% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases @@ -128,6 +128,13 @@

    Dictionary

    +
    +
    + +
    extension Dictionary: MixpanelType
    + +
    +
    @@ -136,9 +143,9 @@

    Dictionary

  • @@ -149,15 +156,23 @@

    Dictionary

    Checks if this object has nested object types that Mixpanel supports.

    +
    +

    Declaration

    +
    +

    Swift

    +
    public func isValidNestedTypeAndValue() -> Bool
    + +
    +
  • @@ -165,7 +180,16 @@

    Dictionary

    - +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func equals(rhs: MixpanelType) -> Bool
    + +
    @@ -175,7 +199,7 @@

    Dictionary

    diff --git a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/Double.html b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/Double.html index 83e731283..747985c15 100644 --- a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/Double.html +++ b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/Double.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.2.0 Docs (0% documented)

    +

    Mixpanel 4.2.1 Docs (84% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases
  • @@ -128,6 +128,13 @@

    Double

    +
    +
    + +
    extension Double: MixpanelType
    + +
    +
    @@ -136,9 +143,9 @@

    Double

  • @@ -150,15 +157,23 @@

    Double

    Will always return true.

    +
    +

    Declaration

    +
    +

    Swift

    +
    public func isValidNestedTypeAndValue() -> Bool
    + +
    +
  • @@ -166,7 +181,16 @@

    Double

    - +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func equals(rhs: MixpanelType) -> Bool
    + +
    @@ -176,7 +200,7 @@

    Double

    diff --git a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/Float.html b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/Float.html index 6d3852839..e3a8476c1 100644 --- a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/Float.html +++ b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/Float.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.2.0 Docs (0% documented)

    +

    Mixpanel 4.2.1 Docs (84% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases
  • @@ -128,6 +128,13 @@

    Float

    +
    +
    + +
    extension Float: MixpanelType
    + +
    +
    @@ -136,9 +143,9 @@

    Float

  • @@ -150,15 +157,23 @@

    Float

    Will always return true.

    +
    +

    Declaration

    +
    +

    Swift

    +
    public func isValidNestedTypeAndValue() -> Bool
    + +
    +
  • @@ -166,7 +181,16 @@

    Float

    - +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func equals(rhs: MixpanelType) -> Bool
    + +
    @@ -176,7 +200,7 @@

    Float

  • diff --git a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/Int.html b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/Int.html index ed32e1223..ee41b97d6 100644 --- a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/Int.html +++ b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/Int.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.2.0 Docs (0% documented)

    +

    Mixpanel 4.2.1 Docs (84% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases @@ -128,6 +128,13 @@

    Int

    +
    +
    + +
    extension Int: MixpanelType
    + +
    +
    @@ -136,9 +143,9 @@

    Int

  • @@ -150,15 +157,23 @@

    Int

    Will always return true.

    +
    +

    Declaration

    +
    +

    Swift

    +
    public func isValidNestedTypeAndValue() -> Bool
    + +
    +
  • @@ -166,7 +181,16 @@

    Int

    - +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func equals(rhs: MixpanelType) -> Bool
    + +
    @@ -176,7 +200,7 @@

    Int

    diff --git a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/NSArray.html b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/NSArray.html index 054c400b3..6ad9ae996 100644 --- a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/NSArray.html +++ b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/NSArray.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.2.0 Docs (0% documented)

    +

    Mixpanel 4.2.1 Docs (84% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases
  • @@ -128,6 +128,13 @@

    NSArray

    +
    +
    + +
    extension NSArray: MixpanelType
    + +
    +
    @@ -136,9 +143,9 @@

    NSArray

  • @@ -149,15 +156,23 @@

    NSArray

    Checks if this object has nested object types that Mixpanel supports.

    +
    +

    Declaration

    +
    +

    Swift

    +
    public func isValidNestedTypeAndValue() -> Bool
    + +
    +
  • @@ -165,7 +180,16 @@

    NSArray

    - +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func equals(rhs: MixpanelType) -> Bool
    + +
    @@ -175,7 +199,7 @@

    NSArray

    diff --git a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/NSNull.html b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/NSNull.html index 8543537d0..bdd8091bb 100644 --- a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/NSNull.html +++ b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/NSNull.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.2.0 Docs (0% documented)

    +

    Mixpanel 4.2.1 Docs (84% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases
  • @@ -128,6 +128,13 @@

    NSNull

    +
    +
    + +
    extension NSNull: MixpanelType
    + +
    +
    @@ -136,9 +143,9 @@

    NSNull

  • @@ -150,15 +157,23 @@

    NSNull

    Will always return true.

    +
    +

    Declaration

    +
    +

    Swift

    +
    public func isValidNestedTypeAndValue() -> Bool
    + +
    +
  • @@ -166,7 +181,16 @@

    NSNull

    - +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func equals(rhs: MixpanelType) -> Bool
    + +
    @@ -176,7 +200,7 @@

    NSNull

  • diff --git a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/NSNumber.html b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/NSNumber.html index fc17886fe..84ef36cbe 100644 --- a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/NSNumber.html +++ b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/NSNumber.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.2.0 Docs (0% documented)

    +

    Mixpanel 4.2.1 Docs (84% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases @@ -128,6 +128,13 @@

    NSNumber

    +
    +
    + +
    extension NSNumber: MixpanelType
    + +
    +
    @@ -136,9 +143,9 @@

    NSNumber

  • @@ -150,15 +157,23 @@

    NSNumber

    Will always return true.

    +
    +

    Declaration

    +
    +

    Swift

    +
    public func isValidNestedTypeAndValue() -> Bool
    + +
    +
  • @@ -166,7 +181,16 @@

    NSNumber

    - +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func equals(rhs: MixpanelType) -> Bool
    + +
    @@ -176,7 +200,7 @@

    NSNumber

    diff --git a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/NSString.html b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/NSString.html index 3c77aaa5a..720c22d15 100644 --- a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/NSString.html +++ b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/NSString.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.2.0 Docs (0% documented)

    +

    Mixpanel 4.2.1 Docs (84% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases
  • @@ -128,6 +128,13 @@

    NSString

    +
    +
    + +
    extension NSString: MixpanelType
    + +
    +
    @@ -136,9 +143,9 @@

    NSString

  • @@ -150,15 +157,23 @@

    NSString

    Will always return true.

    +
    +

    Declaration

    +
    +

    Swift

    +
    public func isValidNestedTypeAndValue() -> Bool
    + +
    +
  • @@ -166,7 +181,16 @@

    NSString

    - +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func equals(rhs: MixpanelType) -> Bool
    + +
    @@ -176,7 +200,7 @@

    NSString

    diff --git a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/Optional.html b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/Optional.html index c1551ec22..0245f9bae 100644 --- a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/Optional.html +++ b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/Optional.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.2.0 Docs (0% documented)

    +

    Mixpanel 4.2.1 Docs (84% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases
  • @@ -128,6 +128,13 @@

    Optional

    +
    +
    + +
    extension Optional: MixpanelType
    + +
    +
    @@ -136,9 +143,9 @@

    Optional

  • @@ -149,15 +156,23 @@

    Optional

    Checks if this object has nested object types that Mixpanel supports.

    +
    +

    Declaration

    +
    +

    Swift

    +
    public func isValidNestedTypeAndValue() -> Bool
    + +
    +
  • @@ -165,7 +180,16 @@

    Optional

    - +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func equals(rhs: MixpanelType) -> Bool
    + +
    @@ -175,7 +199,7 @@

    Optional

  • diff --git a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/String.html b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/String.html index 9d28e60f7..85a850158 100644 --- a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/String.html +++ b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/String.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.2.0 Docs (0% documented)

    +

    Mixpanel 4.2.1 Docs (84% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases @@ -128,6 +128,13 @@

    String

    +
    +
    + +
    extension String: MixpanelType
    + +
    +
    @@ -136,9 +143,9 @@

    String

  • @@ -150,15 +157,23 @@

    String

    Will always return true.

    +
    +

    Declaration

    +
    +

    Swift

    +
    public func isValidNestedTypeAndValue() -> Bool
    + +
    +
  • @@ -166,7 +181,16 @@

    String

    - +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func equals(rhs: MixpanelType) -> Bool
    + +
    @@ -176,7 +200,7 @@

    String

    diff --git a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/UInt.html b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/UInt.html index 3b2cca183..62ea6be0c 100644 --- a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/UInt.html +++ b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/UInt.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.2.0 Docs (0% documented)

    +

    Mixpanel 4.2.1 Docs (84% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases
  • @@ -128,6 +128,13 @@

    UInt

    +
    +
    + +
    extension UInt: MixpanelType
    + +
    +
    @@ -136,9 +143,9 @@

    UInt

  • @@ -150,15 +157,23 @@

    UInt

    Will always return true.

    +
    +

    Declaration

    +
    +

    Swift

    +
    public func isValidNestedTypeAndValue() -> Bool
    + +
    +
  • @@ -166,7 +181,16 @@

    UInt

    - +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func equals(rhs: MixpanelType) -> Bool
    + +
    @@ -176,7 +200,7 @@

    UInt

    diff --git a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/URL.html b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/URL.html index 62228c8e1..8f13a99ac 100644 --- a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/URL.html +++ b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/URL.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.2.0 Docs (0% documented)

    +

    Mixpanel 4.2.1 Docs (84% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases
  • @@ -128,6 +128,13 @@

    URL

    +
    +
    + +
    extension URL: MixpanelType
    + +
    +
    @@ -136,9 +143,9 @@

    URL

  • @@ -150,15 +157,23 @@

    URL

    Will always return true.

    +
    +

    Declaration

    +
    +

    Swift

    +
    public func isValidNestedTypeAndValue() -> Bool
    + +
    +
  • @@ -166,7 +181,16 @@

    URL

    - +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func equals(rhs: MixpanelType) -> Bool
    + +
    @@ -176,7 +200,7 @@

    URL

  • diff --git a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Protocols.html b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Protocols.html index d7b639106..c2d12fbe9 100644 --- a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Protocols.html +++ b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Protocols.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.2.0 Docs (0% documented)

    +

    Mixpanel 4.2.1 Docs (84% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases @@ -137,9 +137,9 @@

    Protocols

  • @@ -151,15 +151,23 @@

    Protocols

    See more
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol MixpanelDelegate : AnyObject
    + +
    +
  • @@ -173,6 +181,14 @@

    Protocols

    See more
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol MixpanelType
    + +
    +
  • @@ -181,7 +197,7 @@

    Protocols

    diff --git a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Protocols/MixpanelDelegate.html b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Protocols/MixpanelDelegate.html index 1e5a63360..9427f4f2b 100644 --- a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Protocols/MixpanelDelegate.html +++ b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Protocols/MixpanelDelegate.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.2.0 Docs (0% documented)

    +

    Mixpanel 4.2.1 Docs (84% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases @@ -128,6 +128,13 @@

    MixpanelDelegate

    +
    +
    + +
    public protocol MixpanelDelegate : AnyObject
    + +
    +

    Delegate protocol for controlling the Mixpanel API’s network behavior.

    @@ -137,9 +144,9 @@

    MixpanelDelegate

  • @@ -150,6 +157,37 @@

    MixpanelDelegate

    Asks the delegate if data should be uploaded to the server.

    +
    +

    Declaration

    +
    +

    Swift

    +
    func mixpanelWillFlush(_ mixpanel: MixpanelInstance) -> Bool
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + mixpanel + + +
    +

    The mixpanel instance

    +
    +
    +
    +
    +

    Return Value

    +

    return true to upload now or false to defer until later

    +
  • @@ -158,7 +196,7 @@

    MixpanelDelegate

    diff --git a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Protocols/MixpanelType.html b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Protocols/MixpanelType.html index 718924b0b..4e70d7279 100644 --- a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Protocols/MixpanelType.html +++ b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Protocols/MixpanelType.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.2.0 Docs (0% documented)

    +

    Mixpanel 4.2.1 Docs (84% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases @@ -128,6 +128,13 @@

    MixpanelType

    +
    +
    + +
    public protocol MixpanelType
    + +
    +

    Property keys must be String objects and the supported value types need to conform to MixpanelType. MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull. Numbers are not NaN or infinity

    @@ -139,9 +146,9 @@

    MixpanelType

  • @@ -152,15 +159,23 @@

    MixpanelType

    Checks if this object has nested object types that Mixpanel supports.

    +
    +

    Declaration

    +
    +

    Swift

    +
    func isValidNestedTypeAndValue() -> Bool
    + +
    +
  • @@ -168,7 +183,16 @@

    MixpanelType

    - +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    func equals(rhs: MixpanelType) -> Bool
    + +
    @@ -178,7 +202,7 @@

    MixpanelType

    diff --git a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Typealiases.html b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Typealiases.html index 7fe5a64ad..2a2085c21 100644 --- a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Typealiases.html +++ b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Typealiases.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.2.0 Docs (0% documented)

    +

    Mixpanel 4.2.1 Docs (84% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases
  • @@ -137,9 +137,9 @@

    Type Aliases

  • @@ -147,7 +147,16 @@

    Type Aliases

    - +

    Undocumented

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public typealias Properties = [String : MixpanelType]
    + +
    @@ -157,7 +166,7 @@

    Type Aliases

    diff --git a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/index.html b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/index.html index 1256e0723..4b7be01ad 100644 --- a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/index.html +++ b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/index.html @@ -16,7 +16,7 @@
    -

    Mixpanel 4.2.0 Docs (0% documented)

    +

    Mixpanel 4.2.1 Docs (84% documented)

    GitHubView on GitHub

    @@ -117,7 +117,7 @@ Type Aliases
  • @@ -207,7 +207,7 @@

    2. Initialize Mixpanel

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { ... - Mixpanel.initialize(token: "MIXPANEL_TOKEN", trackAutomaticEvents: true) + Mixpanel.initialize(token: "MIXPANEL_TOKEN", trackAutomaticEvents: false) ... } @@ -238,7 +238,7 @@

    Complete Code Example

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { ... - Mixpanel.initialize(token: "MIXPANEL_TOKEN", trackAutomaticEvents: true) + Mixpanel.initialize(token: "MIXPANEL_TOKEN", trackAutomaticEvents: false) Mixpanel.mainInstance().track(event: "Sign Up", properties: [ "source": "Pat's affiliate site", "Opted out of email": true @@ -288,7 +288,7 @@

    I want to know more!

    diff --git a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/search.json b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/search.json index 504b86544..277197b0b 100644 --- a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/search.json +++ b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/search.json @@ -1 +1 @@ -{"Typealiases.html#/Properties":{"name":"Properties"},"Protocols/MixpanelType.html#/isValidNestedTypeAndValue()":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.

    ","parent_name":"MixpanelType"},"Protocols/MixpanelType.html#/equals(rhs:)":{"name":"equals(rhs:)","parent_name":"MixpanelType"},"Protocols/MixpanelDelegate.html#/mixpanelWillFlush(_:)":{"name":"mixpanelWillFlush(_:)","abstract":"

    Asks the delegate if data should be uploaded to the server.

    ","parent_name":"MixpanelDelegate"},"Protocols/MixpanelDelegate.html":{"name":"MixpanelDelegate","abstract":"

    Delegate protocol for controlling the Mixpanel API’s network behavior.

    "},"Protocols/MixpanelType.html":{"name":"MixpanelType","abstract":"

    Property keys must be String objects and the supported value types need to conform to MixpanelType."},"Extensions/Dictionary.html#/isValidNestedTypeAndValue()":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.

    ","parent_name":"Dictionary"},"Extensions/Dictionary.html#/equals(rhs:)":{"name":"equals(rhs:)","parent_name":"Dictionary"},"Extensions/NSArray.html#/isValidNestedTypeAndValue()":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.

    ","parent_name":"NSArray"},"Extensions/NSArray.html#/equals(rhs:)":{"name":"equals(rhs:)","parent_name":"NSArray"},"Extensions/Array.html#/isValidNestedTypeAndValue()":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.

    ","parent_name":"Array"},"Extensions/Array.html#/equals(rhs:)":{"name":"equals(rhs:)","parent_name":"Array"},"Extensions/NSNull.html#/isValidNestedTypeAndValue()":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"NSNull"},"Extensions/NSNull.html#/equals(rhs:)":{"name":"equals(rhs:)","parent_name":"NSNull"},"Extensions/URL.html#/isValidNestedTypeAndValue()":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"URL"},"Extensions/URL.html#/equals(rhs:)":{"name":"equals(rhs:)","parent_name":"URL"},"Extensions/Date.html#/isValidNestedTypeAndValue()":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"Date"},"Extensions/Date.html#/equals(rhs:)":{"name":"equals(rhs:)","parent_name":"Date"},"Extensions/Bool.html#/isValidNestedTypeAndValue()":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"Bool"},"Extensions/Bool.html#/equals(rhs:)":{"name":"equals(rhs:)","parent_name":"Bool"},"Extensions/Float.html#/isValidNestedTypeAndValue()":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"Float"},"Extensions/Float.html#/equals(rhs:)":{"name":"equals(rhs:)","parent_name":"Float"},"Extensions/Double.html#/isValidNestedTypeAndValue()":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"Double"},"Extensions/Double.html#/equals(rhs:)":{"name":"equals(rhs:)","parent_name":"Double"},"Extensions/UInt.html#/isValidNestedTypeAndValue()":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"UInt"},"Extensions/UInt.html#/equals(rhs:)":{"name":"equals(rhs:)","parent_name":"UInt"},"Extensions/Int.html#/isValidNestedTypeAndValue()":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"Int"},"Extensions/Int.html#/equals(rhs:)":{"name":"equals(rhs:)","parent_name":"Int"},"Extensions/NSNumber.html#/isValidNestedTypeAndValue()":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"NSNumber"},"Extensions/NSNumber.html#/equals(rhs:)":{"name":"equals(rhs:)","parent_name":"NSNumber"},"Extensions/NSString.html#/isValidNestedTypeAndValue()":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"NSString"},"Extensions/NSString.html#/equals(rhs:)":{"name":"equals(rhs:)","parent_name":"NSString"},"Extensions/String.html#/isValidNestedTypeAndValue()":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"String"},"Extensions/String.html#/equals(rhs:)":{"name":"equals(rhs:)","parent_name":"String"},"Extensions/Optional.html#/isValidNestedTypeAndValue()":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.

    ","parent_name":"Optional"},"Extensions/Optional.html#/equals(rhs:)":{"name":"equals(rhs:)","parent_name":"Optional"},"Extensions/Optional.html":{"name":"Optional"},"Extensions/String.html":{"name":"String"},"Extensions/NSString.html":{"name":"NSString"},"Extensions/NSNumber.html":{"name":"NSNumber"},"Extensions/Int.html":{"name":"Int"},"Extensions/UInt.html":{"name":"UInt"},"Extensions/Double.html":{"name":"Double"},"Extensions/Float.html":{"name":"Float"},"Extensions/Bool.html":{"name":"Bool"},"Extensions/Date.html":{"name":"Date"},"Extensions/URL.html":{"name":"URL"},"Extensions/NSNull.html":{"name":"NSNull"},"Extensions/Array.html":{"name":"Array"},"Extensions/NSArray.html":{"name":"NSArray"},"Extensions/Dictionary.html":{"name":"Dictionary"},"Classes/People.html#/ignoreTime":{"name":"ignoreTime","abstract":"

    controls the $ignore_time property in any subsequent MixpanelPeople operation.","parent_name":"People"},"Classes/People.html#/set(properties:)":{"name":"set(properties:)","abstract":"

    Set properties on the current user in Mixpanel People.

    ","parent_name":"People"},"Classes/People.html#/set(property:to:)":{"name":"set(property:to:)","abstract":"

    Convenience method for setting a single property in Mixpanel People.

    ","parent_name":"People"},"Classes/People.html#/setOnce(properties:)":{"name":"setOnce(properties:)","abstract":"

    Set properties on the current user in Mixpanel People, but doesn’t overwrite if","parent_name":"People"},"Classes/People.html#/unset(properties:)":{"name":"unset(properties:)","abstract":"

    Remove a list of properties and their values from the current user’s profile","parent_name":"People"},"Classes/People.html#/increment(properties:)":{"name":"increment(properties:)","abstract":"

    Increment the given numeric properties by the given values.

    ","parent_name":"People"},"Classes/People.html#/increment(property:by:)":{"name":"increment(property:by:)","abstract":"

    Convenience method for incrementing a single numeric property by the specified","parent_name":"People"},"Classes/People.html#/append(properties:)":{"name":"append(properties:)","abstract":"

    Append values to list properties.

    ","parent_name":"People"},"Classes/People.html#/remove(properties:)":{"name":"remove(properties:)","abstract":"

    Removes list properties.

    ","parent_name":"People"},"Classes/People.html#/union(properties:)":{"name":"union(properties:)","abstract":"

    Union list properties.

    ","parent_name":"People"},"Classes/People.html#/trackCharge(amount:properties:)":{"name":"trackCharge(amount:properties:)","abstract":"

    Track money spent by the current user for revenue analytics and associate","parent_name":"People"},"Classes/People.html#/clearCharges()":{"name":"clearCharges()","abstract":"

    Delete current user’s revenue history.

    ","parent_name":"People"},"Classes/People.html#/deleteUser()":{"name":"deleteUser()","abstract":"

    Delete current user’s record from Mixpanel People.

    ","parent_name":"People"},"Classes/MixpanelInstance.html#/apiToken":{"name":"apiToken","abstract":"

    apiToken string that identifies the project to track data to

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/delegate":{"name":"delegate","abstract":"

    The a MixpanelDelegate object that gives control over Mixpanel network activity.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/distinctId":{"name":"distinctId","abstract":"

    distinctId string that uniquely identifies the current user.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/anonymousId":{"name":"anonymousId","abstract":"

    anonymousId string that uniquely identifies the device.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/userId":{"name":"userId","abstract":"

    userId string that identify is called with.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/hadPersistedDistinctId":{"name":"hadPersistedDistinctId","abstract":"

    hadPersistedDistinctId is a boolean value which specifies that the stored distinct_id","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/alias":{"name":"alias","abstract":"

    alias string that uniquely identifies the current user.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/people":{"name":"people","abstract":"

    Accessor to the Mixpanel People API object.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/showNetworkActivityIndicator":{"name":"showNetworkActivityIndicator","abstract":"

    Controls whether to show spinning network activity indicator when flushing","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/trackAutomaticEventsEnabled":{"name":"trackAutomaticEventsEnabled","abstract":"

    This allows enabling or disabling collecting common mobile events,

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/flushInterval":{"name":"flushInterval","abstract":"

    Flush timer’s interval.","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/flushOnBackground":{"name":"flushOnBackground","abstract":"

    Control whether the library should flush data to Mixpanel when the app","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/useIPAddressForGeoLocation":{"name":"useIPAddressForGeoLocation","abstract":"

    Controls whether to automatically send the client IP Address as part of","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/flushBatchSize":{"name":"flushBatchSize","abstract":"

    The flushBatchSize property determines the number of events sent in a single network request to the Mixpanel server.","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/serverURL":{"name":"serverURL","abstract":"

    The base URL used for Mixpanel API requests.","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/debugDescription":{"name":"debugDescription","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/loggingEnabled":{"name":"loggingEnabled","abstract":"

    This allows enabling or disabling of all Mixpanel logs at run time.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/name":{"name":"name","abstract":"

    A unique identifier for this MixpanelInstance

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/minimumSessionDuration":{"name":"minimumSessionDuration","abstract":"

    The minimum session duration (ms) that is tracked in automatic events.","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/maximumSessionDuration":{"name":"maximumSessionDuration","abstract":"

    The maximum session duration (ms) that is tracked in automatic events.","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/identify(distinctId:usePeople:completion:)":{"name":"identify(distinctId:usePeople:completion:)","abstract":"

    Sets the distinct ID of the current user.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/createAlias(_:distinctId:usePeople:andIdentify:completion:)":{"name":"createAlias(_:distinctId:usePeople:andIdentify:completion:)","abstract":"

    The alias method creates an alias which Mixpanel will use to remap one id to another.","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/reset(completion:)":{"name":"reset(completion:)","abstract":"

    Clears all stored properties including the distinct Id.","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/archive()":{"name":"archive()","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/flush(performFullFlush:completion:)":{"name":"flush(performFullFlush:completion:)","abstract":"

    Uploads queued data to the Mixpanel server.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/track(event:properties:)":{"name":"track(event:properties:)","abstract":"

    Tracks an event with properties.","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/trackWithGroups(event:properties:groups:)":{"name":"trackWithGroups(event:properties:groups:)","abstract":"

    Tracks an event with properties and to specific groups.","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/getGroup(groupKey:groupID:)":{"name":"getGroup(groupKey:groupID:)","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/time(event:)":{"name":"time(event:)","abstract":"

    Starts a timer that will be stopped and added as a property when a","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/eventElapsedTime(event:)":{"name":"eventElapsedTime(event:)","abstract":"

    Retrieves the time elapsed for the named event since time(event:) was called.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/clearTimedEvents()":{"name":"clearTimedEvents()","abstract":"

    Clears all current event timers.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/clearTimedEvent(event:)":{"name":"clearTimedEvent(event:)","abstract":"

    Clears the event timer for the named event.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/currentSuperProperties()":{"name":"currentSuperProperties()","abstract":"

    Returns the currently set super properties.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/clearSuperProperties()":{"name":"clearSuperProperties()","abstract":"

    Clears all currently set super properties.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/registerSuperProperties(_:)":{"name":"registerSuperProperties(_:)","abstract":"

    Registers super properties, overwriting ones that have already been set.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/registerSuperPropertiesOnce(_:defaultValue:)":{"name":"registerSuperPropertiesOnce(_:defaultValue:)","abstract":"

    Registers super properties without overwriting ones that have already been set,","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/unregisterSuperProperty(_:)":{"name":"unregisterSuperProperty(_:)","abstract":"

    Removes a previously registered super property.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/setGroup(groupKey:groupID:)":{"name":"setGroup(groupKey:groupID:)","abstract":"

    Convenience method to set a single group the user belongs to.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/setGroup(groupKey:groupIDs:)":{"name":"setGroup(groupKey:groupIDs:)","abstract":"

    Set the groups this user belongs to.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/addGroup(groupKey:groupID:)":{"name":"addGroup(groupKey:groupID:)","abstract":"

    Add a group to this user’s membership for a particular group key

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/removeGroup(groupKey:groupID:)":{"name":"removeGroup(groupKey:groupID:)","abstract":"

    Remove a group from this user’s membership for a particular group key

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/optOutTracking()":{"name":"optOutTracking()","abstract":"

    Opt out tracking.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/optInTracking(distinctId:properties:)":{"name":"optInTracking(distinctId:properties:)","abstract":"

    Opt in tracking.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/hasOptedOutTracking()":{"name":"hasOptedOutTracking()","abstract":"

    Returns if the current user has opted out tracking.

    ","parent_name":"MixpanelInstance"},"Classes/Mixpanel.html#/initialize(token:trackAutomaticEvents:flushInterval:instanceName:optOutTrackingByDefault:useUniqueDistinctId:superProperties:serverURL:)":{"name":"initialize(token:trackAutomaticEvents:flushInterval:instanceName:optOutTrackingByDefault:useUniqueDistinctId:superProperties:serverURL:)","abstract":"

    Initializes an instance of the API with the given project token.

    ","parent_name":"Mixpanel"},"Classes/Mixpanel.html#/initialize(token:flushInterval:instanceName:optOutTrackingByDefault:useUniqueDistinctId:superProperties:serverURL:)":{"name":"initialize(token:flushInterval:instanceName:optOutTrackingByDefault:useUniqueDistinctId:superProperties:serverURL:)","abstract":"

    Initializes an instance of the API with the given project token (MAC OS ONLY).

    ","parent_name":"Mixpanel"},"Classes/Mixpanel.html#/getInstance(name:)":{"name":"getInstance(name:)","abstract":"

    Gets the mixpanel instance with the given name

    ","parent_name":"Mixpanel"},"Classes/Mixpanel.html#/mainInstance()":{"name":"mainInstance()","abstract":"

    Returns the main instance that was initialized.

    ","parent_name":"Mixpanel"},"Classes/Mixpanel.html#/setMainInstance(name:)":{"name":"setMainInstance(name:)","abstract":"

    Sets the main instance based on the instance name

    ","parent_name":"Mixpanel"},"Classes/Mixpanel.html#/removeInstance(name:)":{"name":"removeInstance(name:)","abstract":"

    Removes an unneeded Mixpanel instance based on its name

    ","parent_name":"Mixpanel"},"Classes/Group.html#/set(properties:)":{"name":"set(properties:)","abstract":"

    Sets properties on this group.

    ","parent_name":"Group"},"Classes/Group.html#/set(property:to:)":{"name":"set(property:to:)","abstract":"

    Convenience method for setting a single property in Mixpanel Groups.

    ","parent_name":"Group"},"Classes/Group.html#/setOnce(properties:)":{"name":"setOnce(properties:)","abstract":"

    Sets properties on the current Mixpanel Group, but doesn’t overwrite if","parent_name":"Group"},"Classes/Group.html#/unset(property:)":{"name":"unset(property:)","abstract":"

    Remove a property and its value from a group’s profile in Mixpanel Groups.

    ","parent_name":"Group"},"Classes/Group.html#/remove(key:value:)":{"name":"remove(key:value:)","abstract":"

    Removes list properties.

    ","parent_name":"Group"},"Classes/Group.html#/union(key:values:)":{"name":"union(key:values:)","abstract":"

    Union list properties.

    ","parent_name":"Group"},"Classes/Group.html#/deleteGroup()":{"name":"deleteGroup()","abstract":"

    Delete group’s record from Mixpanel Groups.

    ","parent_name":"Group"},"Classes/Group.html":{"name":"Group","abstract":"

    Access to the Mixpanel Groups API, available through the getGroup function from"},"Classes/Mixpanel.html":{"name":"Mixpanel","abstract":"

    The primary class for integrating Mixpanel with your app.

    "},"Classes/MixpanelInstance.html":{"name":"MixpanelInstance","abstract":"

    The class that represents the Mixpanel Instance

    "},"Classes/People.html":{"name":"People","abstract":"

    Access to the Mixpanel People API, available as an accessible variable from"},"Classes.html":{"name":"Classes","abstract":"

    The following classes are available globally.

    "},"Extensions.html":{"name":"Extensions","abstract":"

    The following extensions are available globally.

    "},"Protocols.html":{"name":"Protocols","abstract":"

    The following protocols are available globally.

    "},"Typealiases.html":{"name":"Type Aliases","abstract":"

    The following type aliases are available globally.

    "}} \ No newline at end of file +{"Typealiases.html#/s:8Mixpanel10Propertiesa":{"name":"Properties","abstract":"

    Undocumented

    "},"Protocols/MixpanelType.html#/s:8Mixpanel0A4TypeP013isValidNestedB8AndValueSbyF":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.

    ","parent_name":"MixpanelType"},"Protocols/MixpanelType.html#/s:8Mixpanel0A4TypeP6equals3rhsSbAaB_p_tF":{"name":"equals(rhs:)","abstract":"

    Undocumented

    ","parent_name":"MixpanelType"},"Protocols/MixpanelDelegate.html#/s:8Mixpanel0A8DelegateP17mixpanelWillFlushySbAA0A8InstanceCF":{"name":"mixpanelWillFlush(_:)","abstract":"

    Asks the delegate if data should be uploaded to the server.

    ","parent_name":"MixpanelDelegate"},"Protocols/MixpanelDelegate.html":{"name":"MixpanelDelegate","abstract":"

    Delegate protocol for controlling the Mixpanel API’s network behavior.

    "},"Protocols/MixpanelType.html":{"name":"MixpanelType","abstract":"

    Property keys must be String objects and the supported value types need to conform to MixpanelType."},"Extensions/Dictionary.html#/s:SD8MixpanelE25isValidNestedTypeAndValueSbyF":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.

    ","parent_name":"Dictionary"},"Extensions/Dictionary.html#/s:SD8MixpanelE6equals3rhsSbAA0A4Type_p_tF":{"name":"equals(rhs:)","abstract":"

    Undocumented

    ","parent_name":"Dictionary"},"Extensions/NSArray.html#/s:So7NSArrayC8MixpanelE25isValidNestedTypeAndValueSbyF":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.

    ","parent_name":"NSArray"},"Extensions/NSArray.html#/s:So7NSArrayC8MixpanelE6equals3rhsSbAC0B4Type_p_tF":{"name":"equals(rhs:)","abstract":"

    Undocumented

    ","parent_name":"NSArray"},"Extensions/Array.html#/s:Sa8MixpanelE25isValidNestedTypeAndValueSbyF":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.

    ","parent_name":"Array"},"Extensions/Array.html#/s:Sa8MixpanelE6equals3rhsSbAA0A4Type_p_tF":{"name":"equals(rhs:)","abstract":"

    Undocumented

    ","parent_name":"Array"},"Extensions/NSNull.html#/s:So6NSNullC8MixpanelE25isValidNestedTypeAndValueSbyF":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"NSNull"},"Extensions/NSNull.html#/s:So6NSNullC8MixpanelE6equals3rhsSbAC0B4Type_p_tF":{"name":"equals(rhs:)","abstract":"

    Undocumented

    ","parent_name":"NSNull"},"Extensions/URL.html#/s:10Foundation3URLV8MixpanelE25isValidNestedTypeAndValueSbyF":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"URL"},"Extensions/URL.html#/s:10Foundation3URLV8MixpanelE6equals3rhsSbAD0C4Type_p_tF":{"name":"equals(rhs:)","abstract":"

    Undocumented

    ","parent_name":"URL"},"Extensions/Date.html#/s:10Foundation4DateV8MixpanelE25isValidNestedTypeAndValueSbyF":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"Date"},"Extensions/Date.html#/s:10Foundation4DateV8MixpanelE6equals3rhsSbAD0C4Type_p_tF":{"name":"equals(rhs:)","abstract":"

    Undocumented

    ","parent_name":"Date"},"Extensions/Bool.html#/s:Sb8MixpanelE25isValidNestedTypeAndValueSbyF":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"Bool"},"Extensions/Bool.html#/s:Sb8MixpanelE6equals3rhsSbAA0A4Type_p_tF":{"name":"equals(rhs:)","abstract":"

    Undocumented

    ","parent_name":"Bool"},"Extensions/Float.html#/s:Sf8MixpanelE25isValidNestedTypeAndValueSbyF":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"Float"},"Extensions/Float.html#/s:Sf8MixpanelE6equals3rhsSbAA0A4Type_p_tF":{"name":"equals(rhs:)","abstract":"

    Undocumented

    ","parent_name":"Float"},"Extensions/Double.html#/s:Sd8MixpanelE25isValidNestedTypeAndValueSbyF":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"Double"},"Extensions/Double.html#/s:Sd8MixpanelE6equals3rhsSbAA0A4Type_p_tF":{"name":"equals(rhs:)","abstract":"

    Undocumented

    ","parent_name":"Double"},"Extensions/UInt.html#/s:Su8MixpanelE25isValidNestedTypeAndValueSbyF":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"UInt"},"Extensions/UInt.html#/s:Su8MixpanelE6equals3rhsSbAA0A4Type_p_tF":{"name":"equals(rhs:)","abstract":"

    Undocumented

    ","parent_name":"UInt"},"Extensions/Int.html#/s:Si8MixpanelE25isValidNestedTypeAndValueSbyF":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"Int"},"Extensions/Int.html#/s:Si8MixpanelE6equals3rhsSbAA0A4Type_p_tF":{"name":"equals(rhs:)","abstract":"

    Undocumented

    ","parent_name":"Int"},"Extensions/NSNumber.html#/s:So8NSNumberC8MixpanelE25isValidNestedTypeAndValueSbyF":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"NSNumber"},"Extensions/NSNumber.html#/s:So8NSNumberC8MixpanelE6equals3rhsSbAC0B4Type_p_tF":{"name":"equals(rhs:)","abstract":"

    Undocumented

    ","parent_name":"NSNumber"},"Extensions/NSString.html#/s:So8NSStringC8MixpanelE25isValidNestedTypeAndValueSbyF":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"NSString"},"Extensions/NSString.html#/s:So8NSStringC8MixpanelE6equals3rhsSbAC0B4Type_p_tF":{"name":"equals(rhs:)","abstract":"

    Undocumented

    ","parent_name":"NSString"},"Extensions/String.html#/s:SS8MixpanelE25isValidNestedTypeAndValueSbyF":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"String"},"Extensions/String.html#/s:SS8MixpanelE6equals3rhsSbAA0A4Type_p_tF":{"name":"equals(rhs:)","abstract":"

    Undocumented

    ","parent_name":"String"},"Extensions/Optional.html#/s:Sq8MixpanelE25isValidNestedTypeAndValueSbyF":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.

    ","parent_name":"Optional"},"Extensions/Optional.html#/s:Sq8MixpanelE6equals3rhsSbAA0A4Type_p_tF":{"name":"equals(rhs:)","abstract":"

    Undocumented

    ","parent_name":"Optional"},"Extensions/Optional.html":{"name":"Optional"},"Extensions/String.html":{"name":"String"},"Extensions/NSString.html":{"name":"NSString"},"Extensions/NSNumber.html":{"name":"NSNumber"},"Extensions/Int.html":{"name":"Int"},"Extensions/UInt.html":{"name":"UInt"},"Extensions/Double.html":{"name":"Double"},"Extensions/Float.html":{"name":"Float"},"Extensions/Bool.html":{"name":"Bool"},"Extensions/Date.html":{"name":"Date"},"Extensions/URL.html":{"name":"URL"},"Extensions/NSNull.html":{"name":"NSNull"},"Extensions/Array.html":{"name":"Array"},"Extensions/NSArray.html":{"name":"NSArray"},"Extensions/Dictionary.html":{"name":"Dictionary"},"Classes/People.html#/s:8Mixpanel6PeopleC10ignoreTimeSbvp":{"name":"ignoreTime","abstract":"

    controls the $ignore_time property in any subsequent MixpanelPeople operation.","parent_name":"People"},"Classes/People.html#/s:8Mixpanel6PeopleC3set10propertiesySDySSAA0A4Type_pG_tF":{"name":"set(properties:)","abstract":"

    Set properties on the current user in Mixpanel People.

    ","parent_name":"People"},"Classes/People.html#/s:8Mixpanel6PeopleC3set8property2toySS_AA0A4Type_ptF":{"name":"set(property:to:)","abstract":"

    Convenience method for setting a single property in Mixpanel People.

    ","parent_name":"People"},"Classes/People.html#/s:8Mixpanel6PeopleC7setOnce10propertiesySDySSAA0A4Type_pG_tF":{"name":"setOnce(properties:)","abstract":"

    Set properties on the current user in Mixpanel People, but doesn’t overwrite if","parent_name":"People"},"Classes/People.html#/s:8Mixpanel6PeopleC5unset10propertiesySaySSG_tF":{"name":"unset(properties:)","abstract":"

    Remove a list of properties and their values from the current user’s profile","parent_name":"People"},"Classes/People.html#/s:8Mixpanel6PeopleC9increment10propertiesySDySSAA0A4Type_pG_tF":{"name":"increment(properties:)","abstract":"

    Increment the given numeric properties by the given values.

    ","parent_name":"People"},"Classes/People.html#/s:8Mixpanel6PeopleC9increment8property2byySS_SdtF":{"name":"increment(property:by:)","abstract":"

    Convenience method for incrementing a single numeric property by the specified","parent_name":"People"},"Classes/People.html#/s:8Mixpanel6PeopleC6append10propertiesySDySSAA0A4Type_pG_tF":{"name":"append(properties:)","abstract":"

    Append values to list properties.

    ","parent_name":"People"},"Classes/People.html#/s:8Mixpanel6PeopleC6remove10propertiesySDySSAA0A4Type_pG_tF":{"name":"remove(properties:)","abstract":"

    Removes list properties.

    ","parent_name":"People"},"Classes/People.html#/s:8Mixpanel6PeopleC5union10propertiesySDySSAA0A4Type_pG_tF":{"name":"union(properties:)","abstract":"

    Union list properties.

    ","parent_name":"People"},"Classes/People.html#/s:8Mixpanel6PeopleC11trackCharge6amount10propertiesySd_SDySSAA0A4Type_pGSgtF":{"name":"trackCharge(amount:properties:)","abstract":"

    Track money spent by the current user for revenue analytics and associate","parent_name":"People"},"Classes/People.html#/s:8Mixpanel6PeopleC12clearChargesyyF":{"name":"clearCharges()","abstract":"

    Delete current user’s revenue history.

    ","parent_name":"People"},"Classes/People.html#/s:8Mixpanel6PeopleC10deleteUseryyF":{"name":"deleteUser()","abstract":"

    Delete current user’s record from Mixpanel People.

    ","parent_name":"People"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC8apiTokenSSvp":{"name":"apiToken","abstract":"

    apiToken string that identifies the project to track data to

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC8delegateAA0A8Delegate_pSgvp":{"name":"delegate","abstract":"

    The a MixpanelDelegate object that gives control over Mixpanel network activity.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC10distinctIdSSvp":{"name":"distinctId","abstract":"

    distinctId string that uniquely identifies the current user.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC11anonymousIdSSSgvp":{"name":"anonymousId","abstract":"

    anonymousId string that uniquely identifies the device.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC6userIdSSSgvp":{"name":"userId","abstract":"

    userId string that identify is called with.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC22hadPersistedDistinctIdSbSgvp":{"name":"hadPersistedDistinctId","abstract":"

    hadPersistedDistinctId is a boolean value which specifies that the stored distinct_id","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC5aliasSSSgvp":{"name":"alias","abstract":"

    alias string that uniquely identifies the current user.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC6peopleAA6PeopleCSgvp":{"name":"people","abstract":"

    Accessor to the Mixpanel People API object.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC28showNetworkActivityIndicatorSbvp":{"name":"showNetworkActivityIndicator","abstract":"

    Controls whether to show spinning network activity indicator when flushing","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC27trackAutomaticEventsEnabledSbvp":{"name":"trackAutomaticEventsEnabled","abstract":"

    This allows enabling or disabling collecting common mobile events,

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC13flushIntervalSdvp":{"name":"flushInterval","abstract":"

    Flush timer’s interval.","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC17flushOnBackgroundSbvp":{"name":"flushOnBackground","abstract":"

    Control whether the library should flush data to Mixpanel when the app","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC26useIPAddressForGeoLocationSbvp":{"name":"useIPAddressForGeoLocation","abstract":"

    Controls whether to automatically send the client IP Address as part of","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC14flushBatchSizeSivp":{"name":"flushBatchSize","abstract":"

    The flushBatchSize property determines the number of events sent in a single network request to the Mixpanel server.","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC9serverURLSSvp":{"name":"serverURL","abstract":"

    The base URL used for Mixpanel API requests.","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:s28CustomDebugStringConvertibleP16debugDescriptionSSvp":{"name":"debugDescription","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC14loggingEnabledSbvp":{"name":"loggingEnabled","abstract":"

    This allows enabling or disabling of all Mixpanel logs at run time.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC4nameSSvp":{"name":"name","abstract":"

    A unique identifier for this MixpanelInstance

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC22minimumSessionDurations6UInt64Vvp":{"name":"minimumSessionDuration","abstract":"

    Undocumented

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC22maximumSessionDurations6UInt64Vvp":{"name":"maximumSessionDuration","abstract":"

    The maximum session duration (ms) that is tracked in automatic events.","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC8identify10distinctId9usePeople10completionySS_SbyycSgtF":{"name":"identify(distinctId:usePeople:completion:)","abstract":"

    Sets the distinct ID of the current user.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC11createAlias_10distinctId9usePeople11andIdentify10completionySS_SSS2byycSgtF":{"name":"createAlias(_:distinctId:usePeople:andIdentify:completion:)","abstract":"

    The alias method creates an alias which Mixpanel will use to remap one id to another.","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC5reset10completionyyycSg_tF":{"name":"reset(completion:)","abstract":"

    Clears all stored properties including the distinct Id.","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC7archiveyyF":{"name":"archive()","abstract":"

    Undocumented

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC5flush16performFullFlush10completionySb_yycSgtF":{"name":"flush(performFullFlush:completion:)","abstract":"

    Uploads queued data to the Mixpanel server.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC5track5event10propertiesySSSg_SDySSAA0A4Type_pGSgtF":{"name":"track(event:properties:)","abstract":"

    Tracks an event with properties.","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC15trackWithGroups5event10properties6groupsySSSg_SDySSAA0A4Type_pGSgAKtF":{"name":"trackWithGroups(event:properties:groups:)","abstract":"

    Tracks an event with properties and to specific groups.","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC8getGroup8groupKey0E2IDAA0D0CSS_AA0A4Type_ptF":{"name":"getGroup(groupKey:groupID:)","abstract":"

    Undocumented

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC4time5eventySS_tF":{"name":"time(event:)","abstract":"

    Starts a timer that will be stopped and added as a property when a","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC16eventElapsedTime0C0SdSS_tF":{"name":"eventElapsedTime(event:)","abstract":"

    Retrieves the time elapsed for the named event since time(event:) was called.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC16clearTimedEventsyyF":{"name":"clearTimedEvents()","abstract":"

    Clears all current event timers.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC15clearTimedEvent5eventySS_tF":{"name":"clearTimedEvent(event:)","abstract":"

    Clears the event timer for the named event.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC22currentSuperPropertiesSDySSypGyF":{"name":"currentSuperProperties()","abstract":"

    Returns the currently set super properties.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC20clearSuperPropertiesyyF":{"name":"clearSuperProperties()","abstract":"

    Clears all currently set super properties.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC23registerSuperPropertiesyySDySSAA0A4Type_pGF":{"name":"registerSuperProperties(_:)","abstract":"

    Registers super properties, overwriting ones that have already been set.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC27registerSuperPropertiesOnce_12defaultValueySDySSAA0A4Type_pG_AaF_pSgtF":{"name":"registerSuperPropertiesOnce(_:defaultValue:)","abstract":"

    Registers super properties without overwriting ones that have already been set,","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC23unregisterSuperPropertyyySSF":{"name":"unregisterSuperProperty(_:)","abstract":"

    Removes a previously registered super property.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC8setGroup8groupKey0E2IDySS_AA0A4Type_ptF":{"name":"setGroup(groupKey:groupID:)","abstract":"

    Convenience method to set a single group the user belongs to.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC8setGroup8groupKey0E3IDsySS_SayAA0A4Type_pGtF":{"name":"setGroup(groupKey:groupIDs:)","abstract":"

    Set the groups this user belongs to.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC8addGroup8groupKey0E2IDySS_AA0A4Type_ptF":{"name":"addGroup(groupKey:groupID:)","abstract":"

    Add a group to this user’s membership for a particular group key

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC11removeGroup8groupKey0E2IDySS_AA0A4Type_ptF":{"name":"removeGroup(groupKey:groupID:)","abstract":"

    Remove a group from this user’s membership for a particular group key

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC14optOutTrackingyyF":{"name":"optOutTracking()","abstract":"

    Opt out tracking.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC13optInTracking10distinctId10propertiesySSSg_SDySSAA0A4Type_pGSgtF":{"name":"optInTracking(distinctId:properties:)","abstract":"

    Opt in tracking.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC19hasOptedOutTrackingSbyF":{"name":"hasOptedOutTracking()","abstract":"

    Returns if the current user has opted out tracking.

    ","parent_name":"MixpanelInstance"},"Classes/Mixpanel.html#/s:8MixpanelAAC10initialize5token20trackAutomaticEvents13flushInterval12instanceName23optOutTrackingByDefault19useUniqueDistinctId15superProperties9serverURLAA0A8InstanceCSS_SbSdSSSgS2bSDySSAA0A4Type_pGSgANtFZ":{"name":"initialize(token:trackAutomaticEvents:flushInterval:instanceName:optOutTrackingByDefault:useUniqueDistinctId:superProperties:serverURL:)","abstract":"

    Initializes an instance of the API with the given project token.

    ","parent_name":"Mixpanel"},"Classes/Mixpanel.html#/initialize(token:flushInterval:instanceName:optOutTrackingByDefault:useUniqueDistinctId:superProperties:serverURL:)":{"name":"initialize(token:flushInterval:instanceName:optOutTrackingByDefault:useUniqueDistinctId:superProperties:serverURL:)","abstract":"

    Initializes an instance of the API with the given project token (MAC OS ONLY).

    ","parent_name":"Mixpanel"},"Classes/Mixpanel.html#/s:8MixpanelAAC11getInstance4nameAA0aC0CSgSS_tFZ":{"name":"getInstance(name:)","abstract":"

    Gets the mixpanel instance with the given name

    ","parent_name":"Mixpanel"},"Classes/Mixpanel.html#/s:8MixpanelAAC12mainInstanceAA0aC0CyFZ":{"name":"mainInstance()","abstract":"

    Returns the main instance that was initialized.

    ","parent_name":"Mixpanel"},"Classes/Mixpanel.html#/s:8MixpanelAAC15setMainInstance4nameySS_tFZ":{"name":"setMainInstance(name:)","abstract":"

    Sets the main instance based on the instance name

    ","parent_name":"Mixpanel"},"Classes/Mixpanel.html#/s:8MixpanelAAC14removeInstance4nameySS_tFZ":{"name":"removeInstance(name:)","abstract":"

    Removes an unneeded Mixpanel instance based on its name

    ","parent_name":"Mixpanel"},"Classes/Group.html#/s:8Mixpanel5GroupC3set10propertiesySDySSAA0A4Type_pG_tF":{"name":"set(properties:)","abstract":"

    Sets properties on this group.

    ","parent_name":"Group"},"Classes/Group.html#/s:8Mixpanel5GroupC3set8property2toySS_AA0A4Type_ptF":{"name":"set(property:to:)","abstract":"

    Convenience method for setting a single property in Mixpanel Groups.

    ","parent_name":"Group"},"Classes/Group.html#/s:8Mixpanel5GroupC7setOnce10propertiesySDySSAA0A4Type_pG_tF":{"name":"setOnce(properties:)","abstract":"

    Sets properties on the current Mixpanel Group, but doesn’t overwrite if","parent_name":"Group"},"Classes/Group.html#/s:8Mixpanel5GroupC5unset8propertyySS_tF":{"name":"unset(property:)","abstract":"

    Remove a property and its value from a group’s profile in Mixpanel Groups.

    ","parent_name":"Group"},"Classes/Group.html#/s:8Mixpanel5GroupC6remove3key5valueySS_AA0A4Type_ptF":{"name":"remove(key:value:)","abstract":"

    Removes list properties.

    ","parent_name":"Group"},"Classes/Group.html#/s:8Mixpanel5GroupC5union3key6valuesySS_SayAA0A4Type_pGtF":{"name":"union(key:values:)","abstract":"

    Union list properties.

    ","parent_name":"Group"},"Classes/Group.html#/s:8Mixpanel5GroupC06deleteB0yyF":{"name":"deleteGroup()","abstract":"

    Delete group’s record from Mixpanel Groups.

    ","parent_name":"Group"},"Classes/Group.html":{"name":"Group","abstract":"

    Access to the Mixpanel Groups API, available through the getGroup function from"},"Classes/Mixpanel.html":{"name":"Mixpanel","abstract":"

    The primary class for integrating Mixpanel with your app.

    "},"Classes/MixpanelInstance.html":{"name":"MixpanelInstance","abstract":"

    The class that represents the Mixpanel Instance

    "},"Classes/People.html":{"name":"People","abstract":"

    Access to the Mixpanel People API, available as an accessible variable from"},"Classes.html":{"name":"Classes","abstract":"

    The following classes are available globally.

    "},"Extensions.html":{"name":"Extensions","abstract":"

    The following extensions are available globally.

    "},"Protocols.html":{"name":"Protocols","abstract":"

    The following protocols are available globally.

    "},"Typealiases.html":{"name":"Type Aliases","abstract":"

    The following type aliases are available globally.

    "}} \ No newline at end of file diff --git a/docs/docsets/Mixpanel.docset/Contents/Resources/docSet.dsidx b/docs/docsets/Mixpanel.docset/Contents/Resources/docSet.dsidx index c81e1343c93f4cf380995a0ed90526d679c58200..80e89fa0760ef21ddd2dbde132ed6707048fdc4b 100644 GIT binary patch literal 45056 zcmeG_ZERcDb?-@fk0L3OaTHf&6qZtC*^*_OBB?LSaT4l-ifUVuP1*9dOo>ktZHlDH zN7=OFB+nVTA;o?SSi53f_GiPAbZd|wD=-W}*L^lvfg(WBc0d~-2-aa;`={7Y6xasr zoclib-s2-5DN?ovJOP%k`0hLBo^$U#_k3Q)&Yn*4T+c=(w;ktu!qig~O;a!T^iUM_ zCj4{4Kl!Hx8g23)@IS3;S8BdV9b5Ie;AxBJ80C2jepx>j2P_U)9I!ZGalqn$#Q}>0 z76&X2SRAl8U~%Ay=fLF_TbH+w7MNr@!QG9g*S9jcJQvTcZ_VQet<&dbBg?Zr=NIPB zo}cZRUznM_*dzApSzPE*_3Rl)$G5p7J$x|>zq4_EYmldHU3~yMz{l58oT{&?*&-oW zj!d1NRl^%dCIH>??A+|Ro~3j1XCmh=^_-f$bfgE-^eoR_To!RjO+-kVgADMz)$=Rl zyu076&X2SRAl8U~$0WfW-le0~QA!69?=! z*`r?J5S{1vfov|5<#K$I%TErT;rOjgVmcMi=ec}fiOXbD+_5cwJJlD+Pfnak-p$6- zTxv{wFdc^1gTtlwi?NwvEEb6jM@E(*9KV{KTjispKq7O8o%RYtbTWS-o=PSbxIE7# zuuCMJfKLkCfP{JWF3+X&$xJ#QScpY(xp+~*9?OhNA5AL*nGKCr1Q}Z^M(u#RZG-Jc zQn}lOcq%`T+fvBXAdB(2WO`GDZDJuNex^bON5K0OCjK6!ZWhs~8GwYd@+)w#i z?DfV$rnh^DF0o4jSNeeTd%cJ0?(V0h#Uu5R{vsV-JHU9m!nCw_aE%!(v4b9`aT~#ey zKDxET9`y+)=mfV`*qq_=>$zkWc?i70-BOf?UJ-jfG%;Ps^O@}#gdi=YOnL{m8lzV0*unBXlHaO0I%Nx~ zc@r8of>|s^*B-DZy~0U)y^zasX}-BgL&i{vEGcH^iqZHT_Jmgmiv%wxx4FdZ4vb=e z!{3dqhTtfnxCC^R0L9h7M{nF@gI=LekGDZ42gh_M^T6QM71r++JTxXiC3h5YxVvc_ zm!JULi^6G}(CU5INw4R)IL{GzFt9qANap!udYzw7OcwH-xFaXy>BM{jSeo1@POfLR zLG=XS% zvSnT!V0>NU%8Q0CkdF6HGl#r+*z`aR7l1UNh(zv3U>lg^qHZk;lQqPf;v_Z ziM=|K`7~c5BB@BRSuNa>1_Imoxl0JwRUK|Lm5Hk$Z`1_&bC(gar#j@BOaa7wY0!z9 zK!5%^g6=W_og~M4Jg3rxuJ$P7HWPzlk@@N`Kn zdio+Fa#lw)mC2}<=2|7dnpu6OmRZ#;$aqbVJ673VpWvlSqN?UIUxBYaRnD=Tuv`y%+ziGNQ4Z&3u5NwB~0SCZ@5`P9SUqgWAx3BBFr4tPpBV!^2Q+wpZWn@<; zAWSZ2ZgI6MbcT~VA%nr0jjXeMK9I!mbS7Qg&J^|8(7=?~NA&z)AZdZm#Mz{f-o1P(F#{iF1GkiyDSr2*Y!>3n#I@%oR` zqSC8$P#XDw%Gx^kBGcOyw@aje4oh?ty{V!(Y=gt4-thqA^Pi*_iET%d0g-g^bX7Vj4Y9X$5)U6`y8S0;$*fiS zC=IO<92#Z%ebb5(gB$`j5W`LWKOd0QAACyaWlu6keW#SS|DX2fMt zVZP<*9vo!4{Npq^LzTfRjeMYVxE>L?Bc6#$52cY0s7}kFFw^Ug&@;**r*u;q&|i5< z#v2wFD4tJBC#38MBzqYyAciG9-qttcgJ1x_Ux9y|0v!1Wmen|a;XTbfT`(@YnT{k-Z zv*ULhWA=~iR{=zY9}Z0sFTKg}vL#FE9x5s4gh9or=K z&gIO*2eyYk@0(ZXWID+wK|I{!26z;blYB0|ek)P{a~3p!bz*6xJfm>y&IKyqk3n?D0jq~Z`?E*JbvOw}$8+HT!p{6$Tzeb45S$;HYls$CaUz(^HczPIl04n))!HG_u7_Mj0%GzwMlShWDb@ITZfN}~Wz}b;>R6crD z*w4ni!U|2+#Q^wI@D7hC7)McD-%T@xM+yAkm>z-F;$2&njNMB+=;jH-Rs;)r8~q*G zT{~)zD?m)uqvK0VukQh!+)QV39Igd8Av6vzQw?vp^lofzCp#kavvIGGq?3|wVW6Z~ ztDFxdtH08&uWhYQ$Y|7Rx60R`cQ44kh4V%BxK9{`&6il>a(R$WT%shS^h~I4|Aj)v zP(dbuMi<>?13qw2ljX6Po&u4HyCL1E?l@is5U1lb#~wl*l{}PXcVpz~Bx)?NlRdS` z4*G;%5zADZU*C$sS<)by5i({4S}eJfU8ra#11{00U9J*o&P7QOENLAG@u}4;$f?$c zPMeVTKI|<&5Hb_ZwkvT*svS&Wcu<>v z>8V=$ONw2Jcwz;`kgw)7e6|+fp2|)npkp0KdT9{{o9DFt1e_JW0GJ~xn51Mb=^j6{`#P>GtCs+k`g_Um2_f^OrdR;;G>gxH{TF-hw^;KGw=Qn z_f7W^*RNf_U-3m0N6@D;A*45*H)89<=|n40{@+<`|bc- zW&qwm5DSW{Luup#va~ohz);|Nlf7R`52c~=jDgQZ>@P}9rJK^g{wj%j_#mOIa&J}N zWBmlSEHo96N<-%bymEl0PzF~`3X!2H#&xVV5uEO0DcDcl^=##;xJ*|0rRNDTo~p#C zm_;^GZAVqAmyps`4=GhJnGnMD5JC=BB}B7E2q_pa6_M5!&AjU;Le1#1ghN03W4=Rgzx%xLtsrq% zRYGGz!pgIR1ZPzecB4_=^b#66>!G0{9up!ieV!0eT_jXdkE%>Xs*8|Omq@6B$%K%L zpCg30s?J7brLqbgxAqe{_SZ8Vl@XbcvGPm}i>jhZRfUS1o%JuOig-+j*nFB0F;sOf zYSu}$L}`)+?(HK)h3lD`n(>+t$vs7gtbPVHZnxg`5EAP;gKETTLSWoY2=rH-MKOG- zI_&C77vf!nxI^{KUkw;d2)o!p2&*nCDw`78^{6?0ZaE1(b%~0~h)l>>cMvlAOy)-i z-zYg+OOYm9dB;vD8me!GYQSki+_iQ>Tvt`%bTM6`Ca4T)Em@k0%GwB7{(8tV!Dd3x z2+L3qm6ziIH3sEhU>FLb^7319$X)hX%l}sh%D>jeQV=Md+m_PtSCUew3KBb|JbDud z$Wq0dq)PKy3XYcnEkdR{Fu9aL9lh3CX%frPDtQPxlqC9Q>~t@*kVzagoy2;v4F|O+ z%G88het@yi7iorqL=*su;ja4gP|*G#q&_40|B(HE!!zP>xPR(?*S+HUCHMjMfgfPZ z`90@l$Il)2?7y)8fqkz1m+cSRpSOM6#<9O(f1eFA?=wSf|Jb(D`s3D2>(eb?Zwb?% z(s2O!g#0{MW+{k~y|f*_o7^sJ$GALJYRnXJBq>m0oOxordf~}2z3EWM7;1hDRp7Ca z3p?2dF$q1yKK1~;AygImv*%c9zfW*t-b7=xlGF>#7uz_?QWz#nWi~eZoX{5>)J(?iY8kF9vXtK^>{pT^YQ|@{L`umOgm()f@3b+&#xMj8 zB8;z{VX25uzzFjEQY4Yc!K#mDa&uhfbY{I73xBLKWSqOyX_mt9FrjnLqr-_)EQR4= zO*FAVrfTzTFgh$yUjz{k3(_b*rzyK2G+qTXvQ=oAXQ^4Aa5BG@xwF9WcQUzK5y+xVtiHlhUZ2pHC3SXH6YV*cye3`=3|t}5TQF**!Vcdt*g zR4-(fm-1g4M4_stL6NvM#Zs6Fo{*BZ8-rdg5&TkwVCs~UpBuy^gFzw|UIvBQdmm}w zx$`hX`qVeGFpVxd{@hCp1xf4btn<1d>T}kGju%<#lvh|JLPpGGABaQ3HCL7I4qg68t^!TM6vMu_Bcz8dW8UVScI}%nTNX|Y+M3iO4i00C`%BxR}od5 zgVj(}O}dr-=$)XQ2^v7*bz421!p zKT>jgC^1r{QI=MJB*aiqsZe8~!a$IrpdNsDixikjL!C5#c$kEEYbusF5FkNmaDpnJ zlt!sS<=`FT43IGlsCH>G9t~^#6ssez4BZL;>_*b4Q4RvV)+W+0uEakc6 z{<8a7*WbB@I==4wH|HhCZyawp_S@gK``iDb-EZ4qf6m64A26rdK5RSR`d;fe{a4hV z!)xMCB1872SCy#02YLPv9cddy@){pQ8lm=z3E2fExtbrtcpkpGZKFulLm6@-8^S7j zXl~I%HbtD7Lk1NJdOb~EE3(r_2~QZh3xbu39)!VLEVbel9%QmmOtUPNsHn5jE2}hh z4gsr4N+{GB>Dr?V>OzcFJMJbqX#4=DdDS2zT4+#&DRd-RYThfH6*aQGD9H#0Rj{>X z8D+<-z-$p0@VtCi$78w!L~w3`lK|>e;G8$+NtupT-vXJC0jn4io}bB+q_TKXrE|>j zQGwYIxgx*RY_7;~Rf93Q8Rb4lh5@Qyj@!gK3C$%W#ZnMLHhk*iNhn+aFs9l?g|P%n zao&e^Bix{a5ls{Bw-C$C$lXGE?XS+^j90<58Vsp18QgyqiAS+^8fMS2PS_T!0IqSi zRR9cZ(;IQo+iS$?7$R12b8mC0bcM{TahAe6WQ;F+X-w3IOs|mHxj`(tFd?{f+e=gG z+^St6lUybGT%Qi_UR)uwbDc0asIR(f3XN52`BtxyXka(rq`JWo1f;%(M{ryfcaB`t z*KD~b!_~??5WWV*fPNQzUaEv@*C=MJL{sHf9B|8|JMGOZExF`+COeD%k^K!vTzSA>d&(A zvkSMth!z3~L!+h%rRTZU-=;S9KF#1FJLnZ`^maU%R_Lf8e9DbGyukpn1WK=hgvQ$o ziqXqisoYc>`qq2O>XU0hgFyOO;V_GqBdxLP)ay}o08}7MCcK3CCcv1mC;%hT9QYD@*M$8=1xHy{hAmY*WlJO%2id1_7(fPYt*n~|OGD z>ZIB9;y9BOIhQcbqQwR)q}*J5l1;XRd`m@zfj?4{Z5_^qtF^4_-SpW-{oigY6TG{q z0^3 zlbybd@&BhCpHiN8JQ4RNZr<&7z3rOm_-RMBqpyQ<{@D4)&Z6_8GYIzpeEI|lUTY{8 z2P_U)9I!ZGalqn$#Q}>076%MDFd#sIY=8GrtmrlQUa3BTVkr1xDaE#xz6?tFn^^Gu zuR|ho_fRRB*7$3s{I5aoad*FzOl0u2Qhg5~iMT5)h5<=8sjvF`%f?@YitDa9eF#X? zUH_1b^3Z*_S*mMXerEUr>DYS@GKIT>#CM?SRq`gBDl!y&y^L7fLO#~#y_EWD>ZOgo zUFPOp5>@UOt3DKuNm<50b&z7s2YO7#h{wb@^=#t~!R3?eZv|Pi-7_mYB;B!9QDhTw@wEkbqRHCG}ecv6Ybjc(wqbX%N3B|>#7z0 z(CR?4eizD{z1-1QB?gV(|Mv|04rTkq^EJ;?5bb}?mU6x4I?(a=9bxAO&R$1~eaHU4 z_BZU$**e?*sD0W{$XXv-9I!ZGalqn$#eu!yz%2~4_0x|+YrK0AgKe#VOQoMQLz~;l zvQSt$gi*Xlqs9pROHoTh234i}MGQK1(&D`Yjm6J2mmAE!&f*m& z2>7wwVRB|27u|mCLNHKN%}QCTRU1#diUHSAz+sfFv&U5_Tp9@+l6IA(@9&O4DB(BN z#!m`i7IV;PU3PeRX7}cklZ1W+5(V+j1aZ)h{nCUN1)9YxXvE>@zS-*0+(Gk2!Hr+P zv?>mveDWGfAl*e;{^c9^y#(F#o>g*O6IxlkbBC^WF-~K0FJyY@&U_9Jk3bEFhnYC4 z*%>g-;a55BLzH`H+1?g9SS(gVG~^^ItCK174atUXZ8^zxRV!}F-{W3!G7rQ_=we%>=ps#vpas$**(T@%+x`g9{%F#oXo0-C=pzMs z?wto`hBL#VVke7s1gv#Mo^$TG-`sodIp>}`J9F(yPT<;BiscPfXgf*mqG+1B(AGv# z)W_jJKl~^ExS-*Y|A61Ls%_T%IMqFWF$~|jqTN*Vm*F4h$3ehBz(K%4z(K%4z(K%4 zz(K%4z(K%4z(L?ckH8I=Hx_TFt0-5&XTxT9^tb_xD1vBFxHKzn2DAUi3rxAUBeR@HP#9n206 zT^Uu&>&#`LyV=q4(do9U(-V_}(~E7FM;DK_;cnVyM;B(rzN9AZkTkmxVD5^3fRXn_ z|66Q)=pTclpo4&efP;X8fP;X8fP;X8fP;X8fP;X8fP;X8fIS4fIiO?u@S(mddLQ%n zqhApl_z&mDLBK)4LBK)4LBK)4LBK)4LBK)4LBK)4LBK)ai6MY`Q9LnEm$+gn&s{AS zOI%sl9?r8o&+*C0+}#pe;PMj%UVthBu6s?`$hRj&;)|ezXApJ7muc=!h0XJwV@z_`-h|ek**}^`-DQ^X+g8^JeHrp}(Ns2z@SeE%a>go9<5qKTZ9Fe#aGX ze}kS44g_iUwZNYRejzXsi1`27|C)c!ANT#e?>Br|Ux)X5-Y9v`)COQ#@UP9I-uM=s$wL9hOa+ja@Xv94r-Wkz z;l`}Dmr#HF9-XO_%UnU&p=1+gb`kZ(w?&<2a~oWCbQAjMn67 z$xR_q6AEn0o+5>)gJ@sN5qk8lz!mshvB1x883BIRJ|J`QQ5$M$>7XUFB^v23Lh$ea zipNgUSIIIVU&v2J{D=@eIE#+O#%cYk(U9xEB#ievQ6ko(Fd8xt!h8EsEOwkG6H-G( zJ|QHprqH4I6rJVroWPNf^>e94+n&^rZTF+r_)QvD6XiBJJ)5EC?Ma1tq1x`Py5rSB zI#cFYfg8-{SiW;PmCf-&u8f=P zHl8+J^3E3y0!9cNMjb83TzCg-BeR;5%?SR8#q*rw$>O7`9jLXX%cX38k||OC7O6hg z3)|+D!M0g5OUb$ED}=Z`sopMkrGWEV1I~$pV8HsqIbfZ$W}Okrxx%Ue^ZxU|ylBll zRl;kS%^R>Eu)&_5G3~w07JIs~ahod}^uE`|$kQ|FO5RBINI#5x-g@NenZa_I-8Set zVB<*}Kdz7VLBBKB{f^~}tkI)>&c=X8iWR8xG*J2Z3()aR>yAfqWEW-2Mq~Ebn4=@G zK^XM?j1AVIV$tY1eZ&S{W=|Do>uIbw|*;TprR_?*S5RM8^{AzPapa*ixQ+fsCF{iqA(9C6Tw*VyuE zy(6j_hn8?)9G%4OL#f0SvYjO{mH=N?zpHCR7*O|#h_I#HY;m0{*c^*YJ~)ip6D-XZ ziiPcsVuhc;v51|hM#VAGgJOv}npk$b+;|rl??BJCo}|HaD~4QY@QOuG9zuIsPt$X- z?v-zq29U}2;P4R?Z|$W;tEdnt4L+%|mj_=&`(mShNm&4$>{I&fsXbXENTNh*KP}sA zMXJ)^lk#_Dopy-yvXNHElm?%aza#XAWO~smD`ZLo)2l3Yr#M*A3@b!RL!_1r^oz$( zOKTr3SzU!jX<*{oQa^DTbtHxr=Ne-ID3It>{%sJYGX1cyE-PFk(t49Q z1AbDRlGrLML`nmwWoz9n(qR*G=*i&#W}yG9;ebDv#C$KvaBu_R1Y zgxNBiSqCRcZ{SVBBR$hA%r5F+D+3eSmtod4XZ(8VKo-MMs})7F>JirO6R1|ud}v+s$#>Y<3ao4 z<`z+JVvAm5vsbw?4}mF{9Z|wl{U}VHs4?@HlrCE31TpAd-C4TGg8!u{luT^UEBOk) zHdPpcX^8tM*xldi_^ynjLkUil2PTOtZ?but7!X-9&*cf!l~@(!46#CHZ6^0>-IOo^ zlL%6n(q(2QUfnH<>VzqU-wHAYe)$+4bMuJ;BHdcfqL?cq`K!@9TjIGap3zMuw9J@q ziL-5ky_?&pY|L;x&OnV+$}EnPY$9#UJS$1g6@CiIhRidk(VoN%jc;w))DV+Si&G$9 zTwMjzI9k9L$n4HbEz>oyjgyV-qfLqd@Mq`g4K`PhQ`lx^TM9x_I!*xoq>Eh#_ZwlbMfK_h8>ZtVt+f;{Wx zr6J9JTawo2VKCeDhIGC(pOZ{Hq>D`tkTecMU|GK z_q_z7x0(_SGgqA0NLVQcfLHusMKI*Gf^jpzF^l0R7BEK4WIYNiO7S4tbhTaQ(CUiRZAHiP_ zt^~t@zY1&z&int-|CWE!zsvUrzWcrd-hc6a+M8y6!2BLF&%A*C2t7n;wBPeX&!2dH z%_Dd&diJ_MaDU7FmixYY+I_(Feb>9LP1gzfpXo2sv$O}g{i%M&`Va*vPlFt$SOsBl zMhpk0_4(0s3Q-X6*G1dgI}G=)^dbu4{W^IDySO$~*XJ7u!^l}g9gi^K-=UPpW3G@_2h=T)EE&_tv3 znNx^@EJ!W8p%0g|$SS##6DNVMb+BeH6kkDU)TQT+oe{56e(oO@mOr7NDm$+y*JFj zAAq-$z?fm9Q=W~|;FI$H*WHOI$fe8aY=uH;=u+K~L>1}HGy57}=I}u>GIMH`$JX6J zWXq10qJq-UrS=BMO{A3!kNtGz-?g{aCj-OWjmM*J`%7 z4{HV~z6OziYMdHb7L5IEjWN?aK&@s=txaR5lV+vcUOT#Jd|5TVONkxmrjcf$+u4s| z-KNz2)y)ohO=%&!-h$QIu#jyb$bzf)1+39EOO2G{IIT+aaja6&LU^4@DoGY>ea~Z^ ztY^K(k5y~G7{gjMHS0C9Ec8k}hxM9K_f|JTwdbxTT-bxvx?>^TQj`T>??)OxL6wWE zR%-s)rk|inl9f)+G}cMw&uetr-Ly_BNftVt-Gz0sUVF7ng<7TSQLIu^Yp*8ALZiM2 z*2sFEYXW1nQj1}%R8#X@Bg;asR0!*3J2M+ z#`mEcwe$y~TDGsKA0F(6Q1vkceS&g2VI6O`Ruy46A z*bgl5vLVod`$Za}o7kun3qefPunq;s|J~FBD*A4;9DN4j|IbHWitG)4C;WQ&R@eg> zfY(Atf?p3l40Z?J3p@@C`G4&HZNK1u!S^-afcNv>OWqLk1{7=jFQB2+?1-NcX)7XErMNR0Qc(CyiJfyCQs#t$->Jx8MaM2u3hM8>OkIvH@%D#Sw-EqJHKIa;}$`|?D*dnzGlor zH?gUQD%&P&5!4LqOX38xs420fqXqwiC5Bp#R}T_^s{5~dDRQIdLwup<(HukJnlk$}V75TDFK%HLOl)GyxK2m%gBsP58#6D=h>{KK zbnHqtWIi-8s8wSImIR!!ojQu1O`C58TC znv9FAPo)&irVuUD%ae#2Ogw@Dor$Z1*(@w6eyms?=ZaT~nP!T<%mt*cz}ZJ)gLL~O zY5>PBBMOQDi9E=??YIUoa|yPZM3pASR9C^%TsfG91a1O6+yr>IYsIZJCu|kV>w~aE zZsvq-c>8${ATG*RXdA6KD-mZeLcTpQUuynJ^qFxutw_v4?Fq}dXVi$S6!gSn=g8T&81~u~ zV?d4L|L1+HRP@Wy{>VRt-wFL@XerbZ{ATb$@Lb?O1MdWify4gqLd^e*{#*VIKLxk= z-}Su)49<^(fP;X8fP;X8fP;X8fHeZ0RXCY|w>aQ)kp?euXs^P1W8f_g;4X?q;)XAA z=y(LaZOf5b{fP0KWm+FX=~hdJlw~z|vrPK~@X%u?MQ@9c$r)Ld1J-jN0_NDb-rd!Z z>%SzYKZovt2OR5>zcXYYg!^8F&?R=9r0+CTDyA83T><^QV^$u~3R=(pdkqzI) zF6W}?MXtj;ls0iSeqB0H&0kMDyhVgaKBOW=pP5$+siz&-#D#xzn)<}LE0t;yddl$% zu49C3L!&xIwGbofK>?RBs!I@!${2N0WJg;h9pK4eaK6txG%%4s>K(6?@j)dg!XzI9 zk^eK89#we;NoR_N9O*mwv|$z0nN;7nvTdQbgYOc%yRvG zEK3>nMb{7uUBQpW5(J3(**}75R2# z#ruuObK&>BzZCuz?^yV1=-)!0^gYk~Pw0H`Z-bu=_P{NGvj0cS3IFf-FZn&pSAAdf ztyypV&bJN%4gwAW4g&u-5Ey|=`HOUYe4yRm)NXG*?OjnweSBapq@H%`0=ySy4m43Y z;7!F6n->v;5;U+kxD%xwj1hHZ2tg=;1<8Rx)3Jmg4n`%y;6{{A54kf!$xp(aZjLsL z478}~oOVNw@)W$WW)+X<$;1+O#P=NU;2><2MR2A|1LxB^)SVoK8NH;PM+V@l@&WBh z&7>p5XQemLSk%24KL(wnX~ECQis}!8w1Rbt>WTXwGPq<&JS+a$*9q!?r-57=!KxSxlC7Jg5%IjA*anuYqR~UR!Pg|X{+dPi7 z5-~9W26Wkm0o6=NBMaJ-WpME<7DbF)-Rr*Vl2s-sSP58_mZ&L>S=L2|v<3glFzf`2 zjdlV(9I_!7ca1ZHu&-%$lSbAE6p}>{($fP7Dsn&z=`A#NAGJ(BCB6&1z9!AqM673< zUt@5Yx3oDKKVX~Ki@TMXh@AKiOvzU;Ps(W?fC2Tns)xY^%Aj$54KzUfv#C(dO7qo3 Ki6>E^ocUivNzP^f diff --git a/docs/docsets/Mixpanel.tgz b/docs/docsets/Mixpanel.tgz index 82564a08b739500440099c6e27248aa263240778..ae47dad67850a6a0deb8cf967966e543ab437923 100644 GIT binary patch literal 99258 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 < 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
    -

    Mixpanel 4.2.0 Docs (0% documented)

    +

    Mixpanel 4.2.1 Docs (84% documented)

    GitHubView on GitHub

    @@ -117,7 +117,7 @@ Type Aliases @@ -207,7 +207,7 @@

    2. Initialize Mixpanel

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { ... - Mixpanel.initialize(token: "MIXPANEL_TOKEN", trackAutomaticEvents: true) + Mixpanel.initialize(token: "MIXPANEL_TOKEN", trackAutomaticEvents: false) ... } @@ -238,7 +238,7 @@

    Complete Code Example

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { ... - Mixpanel.initialize(token: "MIXPANEL_TOKEN", trackAutomaticEvents: true) + Mixpanel.initialize(token: "MIXPANEL_TOKEN", trackAutomaticEvents: false) Mixpanel.mainInstance().track(event: "Sign Up", properties: [ "source": "Pat's affiliate site", "Opted out of email": true @@ -288,7 +288,7 @@

    I want to know more!

    diff --git a/docs/search.json b/docs/search.json index 504b86544..277197b0b 100644 --- a/docs/search.json +++ b/docs/search.json @@ -1 +1 @@ -{"Typealiases.html#/Properties":{"name":"Properties"},"Protocols/MixpanelType.html#/isValidNestedTypeAndValue()":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.

    ","parent_name":"MixpanelType"},"Protocols/MixpanelType.html#/equals(rhs:)":{"name":"equals(rhs:)","parent_name":"MixpanelType"},"Protocols/MixpanelDelegate.html#/mixpanelWillFlush(_:)":{"name":"mixpanelWillFlush(_:)","abstract":"

    Asks the delegate if data should be uploaded to the server.

    ","parent_name":"MixpanelDelegate"},"Protocols/MixpanelDelegate.html":{"name":"MixpanelDelegate","abstract":"

    Delegate protocol for controlling the Mixpanel API’s network behavior.

    "},"Protocols/MixpanelType.html":{"name":"MixpanelType","abstract":"

    Property keys must be String objects and the supported value types need to conform to MixpanelType."},"Extensions/Dictionary.html#/isValidNestedTypeAndValue()":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.

    ","parent_name":"Dictionary"},"Extensions/Dictionary.html#/equals(rhs:)":{"name":"equals(rhs:)","parent_name":"Dictionary"},"Extensions/NSArray.html#/isValidNestedTypeAndValue()":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.

    ","parent_name":"NSArray"},"Extensions/NSArray.html#/equals(rhs:)":{"name":"equals(rhs:)","parent_name":"NSArray"},"Extensions/Array.html#/isValidNestedTypeAndValue()":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.

    ","parent_name":"Array"},"Extensions/Array.html#/equals(rhs:)":{"name":"equals(rhs:)","parent_name":"Array"},"Extensions/NSNull.html#/isValidNestedTypeAndValue()":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"NSNull"},"Extensions/NSNull.html#/equals(rhs:)":{"name":"equals(rhs:)","parent_name":"NSNull"},"Extensions/URL.html#/isValidNestedTypeAndValue()":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"URL"},"Extensions/URL.html#/equals(rhs:)":{"name":"equals(rhs:)","parent_name":"URL"},"Extensions/Date.html#/isValidNestedTypeAndValue()":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"Date"},"Extensions/Date.html#/equals(rhs:)":{"name":"equals(rhs:)","parent_name":"Date"},"Extensions/Bool.html#/isValidNestedTypeAndValue()":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"Bool"},"Extensions/Bool.html#/equals(rhs:)":{"name":"equals(rhs:)","parent_name":"Bool"},"Extensions/Float.html#/isValidNestedTypeAndValue()":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"Float"},"Extensions/Float.html#/equals(rhs:)":{"name":"equals(rhs:)","parent_name":"Float"},"Extensions/Double.html#/isValidNestedTypeAndValue()":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"Double"},"Extensions/Double.html#/equals(rhs:)":{"name":"equals(rhs:)","parent_name":"Double"},"Extensions/UInt.html#/isValidNestedTypeAndValue()":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"UInt"},"Extensions/UInt.html#/equals(rhs:)":{"name":"equals(rhs:)","parent_name":"UInt"},"Extensions/Int.html#/isValidNestedTypeAndValue()":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"Int"},"Extensions/Int.html#/equals(rhs:)":{"name":"equals(rhs:)","parent_name":"Int"},"Extensions/NSNumber.html#/isValidNestedTypeAndValue()":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"NSNumber"},"Extensions/NSNumber.html#/equals(rhs:)":{"name":"equals(rhs:)","parent_name":"NSNumber"},"Extensions/NSString.html#/isValidNestedTypeAndValue()":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"NSString"},"Extensions/NSString.html#/equals(rhs:)":{"name":"equals(rhs:)","parent_name":"NSString"},"Extensions/String.html#/isValidNestedTypeAndValue()":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"String"},"Extensions/String.html#/equals(rhs:)":{"name":"equals(rhs:)","parent_name":"String"},"Extensions/Optional.html#/isValidNestedTypeAndValue()":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.

    ","parent_name":"Optional"},"Extensions/Optional.html#/equals(rhs:)":{"name":"equals(rhs:)","parent_name":"Optional"},"Extensions/Optional.html":{"name":"Optional"},"Extensions/String.html":{"name":"String"},"Extensions/NSString.html":{"name":"NSString"},"Extensions/NSNumber.html":{"name":"NSNumber"},"Extensions/Int.html":{"name":"Int"},"Extensions/UInt.html":{"name":"UInt"},"Extensions/Double.html":{"name":"Double"},"Extensions/Float.html":{"name":"Float"},"Extensions/Bool.html":{"name":"Bool"},"Extensions/Date.html":{"name":"Date"},"Extensions/URL.html":{"name":"URL"},"Extensions/NSNull.html":{"name":"NSNull"},"Extensions/Array.html":{"name":"Array"},"Extensions/NSArray.html":{"name":"NSArray"},"Extensions/Dictionary.html":{"name":"Dictionary"},"Classes/People.html#/ignoreTime":{"name":"ignoreTime","abstract":"

    controls the $ignore_time property in any subsequent MixpanelPeople operation.","parent_name":"People"},"Classes/People.html#/set(properties:)":{"name":"set(properties:)","abstract":"

    Set properties on the current user in Mixpanel People.

    ","parent_name":"People"},"Classes/People.html#/set(property:to:)":{"name":"set(property:to:)","abstract":"

    Convenience method for setting a single property in Mixpanel People.

    ","parent_name":"People"},"Classes/People.html#/setOnce(properties:)":{"name":"setOnce(properties:)","abstract":"

    Set properties on the current user in Mixpanel People, but doesn’t overwrite if","parent_name":"People"},"Classes/People.html#/unset(properties:)":{"name":"unset(properties:)","abstract":"

    Remove a list of properties and their values from the current user’s profile","parent_name":"People"},"Classes/People.html#/increment(properties:)":{"name":"increment(properties:)","abstract":"

    Increment the given numeric properties by the given values.

    ","parent_name":"People"},"Classes/People.html#/increment(property:by:)":{"name":"increment(property:by:)","abstract":"

    Convenience method for incrementing a single numeric property by the specified","parent_name":"People"},"Classes/People.html#/append(properties:)":{"name":"append(properties:)","abstract":"

    Append values to list properties.

    ","parent_name":"People"},"Classes/People.html#/remove(properties:)":{"name":"remove(properties:)","abstract":"

    Removes list properties.

    ","parent_name":"People"},"Classes/People.html#/union(properties:)":{"name":"union(properties:)","abstract":"

    Union list properties.

    ","parent_name":"People"},"Classes/People.html#/trackCharge(amount:properties:)":{"name":"trackCharge(amount:properties:)","abstract":"

    Track money spent by the current user for revenue analytics and associate","parent_name":"People"},"Classes/People.html#/clearCharges()":{"name":"clearCharges()","abstract":"

    Delete current user’s revenue history.

    ","parent_name":"People"},"Classes/People.html#/deleteUser()":{"name":"deleteUser()","abstract":"

    Delete current user’s record from Mixpanel People.

    ","parent_name":"People"},"Classes/MixpanelInstance.html#/apiToken":{"name":"apiToken","abstract":"

    apiToken string that identifies the project to track data to

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/delegate":{"name":"delegate","abstract":"

    The a MixpanelDelegate object that gives control over Mixpanel network activity.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/distinctId":{"name":"distinctId","abstract":"

    distinctId string that uniquely identifies the current user.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/anonymousId":{"name":"anonymousId","abstract":"

    anonymousId string that uniquely identifies the device.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/userId":{"name":"userId","abstract":"

    userId string that identify is called with.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/hadPersistedDistinctId":{"name":"hadPersistedDistinctId","abstract":"

    hadPersistedDistinctId is a boolean value which specifies that the stored distinct_id","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/alias":{"name":"alias","abstract":"

    alias string that uniquely identifies the current user.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/people":{"name":"people","abstract":"

    Accessor to the Mixpanel People API object.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/showNetworkActivityIndicator":{"name":"showNetworkActivityIndicator","abstract":"

    Controls whether to show spinning network activity indicator when flushing","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/trackAutomaticEventsEnabled":{"name":"trackAutomaticEventsEnabled","abstract":"

    This allows enabling or disabling collecting common mobile events,

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/flushInterval":{"name":"flushInterval","abstract":"

    Flush timer’s interval.","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/flushOnBackground":{"name":"flushOnBackground","abstract":"

    Control whether the library should flush data to Mixpanel when the app","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/useIPAddressForGeoLocation":{"name":"useIPAddressForGeoLocation","abstract":"

    Controls whether to automatically send the client IP Address as part of","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/flushBatchSize":{"name":"flushBatchSize","abstract":"

    The flushBatchSize property determines the number of events sent in a single network request to the Mixpanel server.","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/serverURL":{"name":"serverURL","abstract":"

    The base URL used for Mixpanel API requests.","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/debugDescription":{"name":"debugDescription","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/loggingEnabled":{"name":"loggingEnabled","abstract":"

    This allows enabling or disabling of all Mixpanel logs at run time.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/name":{"name":"name","abstract":"

    A unique identifier for this MixpanelInstance

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/minimumSessionDuration":{"name":"minimumSessionDuration","abstract":"

    The minimum session duration (ms) that is tracked in automatic events.","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/maximumSessionDuration":{"name":"maximumSessionDuration","abstract":"

    The maximum session duration (ms) that is tracked in automatic events.","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/identify(distinctId:usePeople:completion:)":{"name":"identify(distinctId:usePeople:completion:)","abstract":"

    Sets the distinct ID of the current user.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/createAlias(_:distinctId:usePeople:andIdentify:completion:)":{"name":"createAlias(_:distinctId:usePeople:andIdentify:completion:)","abstract":"

    The alias method creates an alias which Mixpanel will use to remap one id to another.","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/reset(completion:)":{"name":"reset(completion:)","abstract":"

    Clears all stored properties including the distinct Id.","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/archive()":{"name":"archive()","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/flush(performFullFlush:completion:)":{"name":"flush(performFullFlush:completion:)","abstract":"

    Uploads queued data to the Mixpanel server.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/track(event:properties:)":{"name":"track(event:properties:)","abstract":"

    Tracks an event with properties.","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/trackWithGroups(event:properties:groups:)":{"name":"trackWithGroups(event:properties:groups:)","abstract":"

    Tracks an event with properties and to specific groups.","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/getGroup(groupKey:groupID:)":{"name":"getGroup(groupKey:groupID:)","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/time(event:)":{"name":"time(event:)","abstract":"

    Starts a timer that will be stopped and added as a property when a","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/eventElapsedTime(event:)":{"name":"eventElapsedTime(event:)","abstract":"

    Retrieves the time elapsed for the named event since time(event:) was called.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/clearTimedEvents()":{"name":"clearTimedEvents()","abstract":"

    Clears all current event timers.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/clearTimedEvent(event:)":{"name":"clearTimedEvent(event:)","abstract":"

    Clears the event timer for the named event.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/currentSuperProperties()":{"name":"currentSuperProperties()","abstract":"

    Returns the currently set super properties.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/clearSuperProperties()":{"name":"clearSuperProperties()","abstract":"

    Clears all currently set super properties.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/registerSuperProperties(_:)":{"name":"registerSuperProperties(_:)","abstract":"

    Registers super properties, overwriting ones that have already been set.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/registerSuperPropertiesOnce(_:defaultValue:)":{"name":"registerSuperPropertiesOnce(_:defaultValue:)","abstract":"

    Registers super properties without overwriting ones that have already been set,","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/unregisterSuperProperty(_:)":{"name":"unregisterSuperProperty(_:)","abstract":"

    Removes a previously registered super property.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/setGroup(groupKey:groupID:)":{"name":"setGroup(groupKey:groupID:)","abstract":"

    Convenience method to set a single group the user belongs to.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/setGroup(groupKey:groupIDs:)":{"name":"setGroup(groupKey:groupIDs:)","abstract":"

    Set the groups this user belongs to.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/addGroup(groupKey:groupID:)":{"name":"addGroup(groupKey:groupID:)","abstract":"

    Add a group to this user’s membership for a particular group key

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/removeGroup(groupKey:groupID:)":{"name":"removeGroup(groupKey:groupID:)","abstract":"

    Remove a group from this user’s membership for a particular group key

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/optOutTracking()":{"name":"optOutTracking()","abstract":"

    Opt out tracking.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/optInTracking(distinctId:properties:)":{"name":"optInTracking(distinctId:properties:)","abstract":"

    Opt in tracking.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/hasOptedOutTracking()":{"name":"hasOptedOutTracking()","abstract":"

    Returns if the current user has opted out tracking.

    ","parent_name":"MixpanelInstance"},"Classes/Mixpanel.html#/initialize(token:trackAutomaticEvents:flushInterval:instanceName:optOutTrackingByDefault:useUniqueDistinctId:superProperties:serverURL:)":{"name":"initialize(token:trackAutomaticEvents:flushInterval:instanceName:optOutTrackingByDefault:useUniqueDistinctId:superProperties:serverURL:)","abstract":"

    Initializes an instance of the API with the given project token.

    ","parent_name":"Mixpanel"},"Classes/Mixpanel.html#/initialize(token:flushInterval:instanceName:optOutTrackingByDefault:useUniqueDistinctId:superProperties:serverURL:)":{"name":"initialize(token:flushInterval:instanceName:optOutTrackingByDefault:useUniqueDistinctId:superProperties:serverURL:)","abstract":"

    Initializes an instance of the API with the given project token (MAC OS ONLY).

    ","parent_name":"Mixpanel"},"Classes/Mixpanel.html#/getInstance(name:)":{"name":"getInstance(name:)","abstract":"

    Gets the mixpanel instance with the given name

    ","parent_name":"Mixpanel"},"Classes/Mixpanel.html#/mainInstance()":{"name":"mainInstance()","abstract":"

    Returns the main instance that was initialized.

    ","parent_name":"Mixpanel"},"Classes/Mixpanel.html#/setMainInstance(name:)":{"name":"setMainInstance(name:)","abstract":"

    Sets the main instance based on the instance name

    ","parent_name":"Mixpanel"},"Classes/Mixpanel.html#/removeInstance(name:)":{"name":"removeInstance(name:)","abstract":"

    Removes an unneeded Mixpanel instance based on its name

    ","parent_name":"Mixpanel"},"Classes/Group.html#/set(properties:)":{"name":"set(properties:)","abstract":"

    Sets properties on this group.

    ","parent_name":"Group"},"Classes/Group.html#/set(property:to:)":{"name":"set(property:to:)","abstract":"

    Convenience method for setting a single property in Mixpanel Groups.

    ","parent_name":"Group"},"Classes/Group.html#/setOnce(properties:)":{"name":"setOnce(properties:)","abstract":"

    Sets properties on the current Mixpanel Group, but doesn’t overwrite if","parent_name":"Group"},"Classes/Group.html#/unset(property:)":{"name":"unset(property:)","abstract":"

    Remove a property and its value from a group’s profile in Mixpanel Groups.

    ","parent_name":"Group"},"Classes/Group.html#/remove(key:value:)":{"name":"remove(key:value:)","abstract":"

    Removes list properties.

    ","parent_name":"Group"},"Classes/Group.html#/union(key:values:)":{"name":"union(key:values:)","abstract":"

    Union list properties.

    ","parent_name":"Group"},"Classes/Group.html#/deleteGroup()":{"name":"deleteGroup()","abstract":"

    Delete group’s record from Mixpanel Groups.

    ","parent_name":"Group"},"Classes/Group.html":{"name":"Group","abstract":"

    Access to the Mixpanel Groups API, available through the getGroup function from"},"Classes/Mixpanel.html":{"name":"Mixpanel","abstract":"

    The primary class for integrating Mixpanel with your app.

    "},"Classes/MixpanelInstance.html":{"name":"MixpanelInstance","abstract":"

    The class that represents the Mixpanel Instance

    "},"Classes/People.html":{"name":"People","abstract":"

    Access to the Mixpanel People API, available as an accessible variable from"},"Classes.html":{"name":"Classes","abstract":"

    The following classes are available globally.

    "},"Extensions.html":{"name":"Extensions","abstract":"

    The following extensions are available globally.

    "},"Protocols.html":{"name":"Protocols","abstract":"

    The following protocols are available globally.

    "},"Typealiases.html":{"name":"Type Aliases","abstract":"

    The following type aliases are available globally.

    "}} \ No newline at end of file +{"Typealiases.html#/s:8Mixpanel10Propertiesa":{"name":"Properties","abstract":"

    Undocumented

    "},"Protocols/MixpanelType.html#/s:8Mixpanel0A4TypeP013isValidNestedB8AndValueSbyF":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.

    ","parent_name":"MixpanelType"},"Protocols/MixpanelType.html#/s:8Mixpanel0A4TypeP6equals3rhsSbAaB_p_tF":{"name":"equals(rhs:)","abstract":"

    Undocumented

    ","parent_name":"MixpanelType"},"Protocols/MixpanelDelegate.html#/s:8Mixpanel0A8DelegateP17mixpanelWillFlushySbAA0A8InstanceCF":{"name":"mixpanelWillFlush(_:)","abstract":"

    Asks the delegate if data should be uploaded to the server.

    ","parent_name":"MixpanelDelegate"},"Protocols/MixpanelDelegate.html":{"name":"MixpanelDelegate","abstract":"

    Delegate protocol for controlling the Mixpanel API’s network behavior.

    "},"Protocols/MixpanelType.html":{"name":"MixpanelType","abstract":"

    Property keys must be String objects and the supported value types need to conform to MixpanelType."},"Extensions/Dictionary.html#/s:SD8MixpanelE25isValidNestedTypeAndValueSbyF":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.

    ","parent_name":"Dictionary"},"Extensions/Dictionary.html#/s:SD8MixpanelE6equals3rhsSbAA0A4Type_p_tF":{"name":"equals(rhs:)","abstract":"

    Undocumented

    ","parent_name":"Dictionary"},"Extensions/NSArray.html#/s:So7NSArrayC8MixpanelE25isValidNestedTypeAndValueSbyF":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.

    ","parent_name":"NSArray"},"Extensions/NSArray.html#/s:So7NSArrayC8MixpanelE6equals3rhsSbAC0B4Type_p_tF":{"name":"equals(rhs:)","abstract":"

    Undocumented

    ","parent_name":"NSArray"},"Extensions/Array.html#/s:Sa8MixpanelE25isValidNestedTypeAndValueSbyF":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.

    ","parent_name":"Array"},"Extensions/Array.html#/s:Sa8MixpanelE6equals3rhsSbAA0A4Type_p_tF":{"name":"equals(rhs:)","abstract":"

    Undocumented

    ","parent_name":"Array"},"Extensions/NSNull.html#/s:So6NSNullC8MixpanelE25isValidNestedTypeAndValueSbyF":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"NSNull"},"Extensions/NSNull.html#/s:So6NSNullC8MixpanelE6equals3rhsSbAC0B4Type_p_tF":{"name":"equals(rhs:)","abstract":"

    Undocumented

    ","parent_name":"NSNull"},"Extensions/URL.html#/s:10Foundation3URLV8MixpanelE25isValidNestedTypeAndValueSbyF":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"URL"},"Extensions/URL.html#/s:10Foundation3URLV8MixpanelE6equals3rhsSbAD0C4Type_p_tF":{"name":"equals(rhs:)","abstract":"

    Undocumented

    ","parent_name":"URL"},"Extensions/Date.html#/s:10Foundation4DateV8MixpanelE25isValidNestedTypeAndValueSbyF":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"Date"},"Extensions/Date.html#/s:10Foundation4DateV8MixpanelE6equals3rhsSbAD0C4Type_p_tF":{"name":"equals(rhs:)","abstract":"

    Undocumented

    ","parent_name":"Date"},"Extensions/Bool.html#/s:Sb8MixpanelE25isValidNestedTypeAndValueSbyF":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"Bool"},"Extensions/Bool.html#/s:Sb8MixpanelE6equals3rhsSbAA0A4Type_p_tF":{"name":"equals(rhs:)","abstract":"

    Undocumented

    ","parent_name":"Bool"},"Extensions/Float.html#/s:Sf8MixpanelE25isValidNestedTypeAndValueSbyF":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"Float"},"Extensions/Float.html#/s:Sf8MixpanelE6equals3rhsSbAA0A4Type_p_tF":{"name":"equals(rhs:)","abstract":"

    Undocumented

    ","parent_name":"Float"},"Extensions/Double.html#/s:Sd8MixpanelE25isValidNestedTypeAndValueSbyF":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"Double"},"Extensions/Double.html#/s:Sd8MixpanelE6equals3rhsSbAA0A4Type_p_tF":{"name":"equals(rhs:)","abstract":"

    Undocumented

    ","parent_name":"Double"},"Extensions/UInt.html#/s:Su8MixpanelE25isValidNestedTypeAndValueSbyF":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"UInt"},"Extensions/UInt.html#/s:Su8MixpanelE6equals3rhsSbAA0A4Type_p_tF":{"name":"equals(rhs:)","abstract":"

    Undocumented

    ","parent_name":"UInt"},"Extensions/Int.html#/s:Si8MixpanelE25isValidNestedTypeAndValueSbyF":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"Int"},"Extensions/Int.html#/s:Si8MixpanelE6equals3rhsSbAA0A4Type_p_tF":{"name":"equals(rhs:)","abstract":"

    Undocumented

    ","parent_name":"Int"},"Extensions/NSNumber.html#/s:So8NSNumberC8MixpanelE25isValidNestedTypeAndValueSbyF":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"NSNumber"},"Extensions/NSNumber.html#/s:So8NSNumberC8MixpanelE6equals3rhsSbAC0B4Type_p_tF":{"name":"equals(rhs:)","abstract":"

    Undocumented

    ","parent_name":"NSNumber"},"Extensions/NSString.html#/s:So8NSStringC8MixpanelE25isValidNestedTypeAndValueSbyF":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"NSString"},"Extensions/NSString.html#/s:So8NSStringC8MixpanelE6equals3rhsSbAC0B4Type_p_tF":{"name":"equals(rhs:)","abstract":"

    Undocumented

    ","parent_name":"NSString"},"Extensions/String.html#/s:SS8MixpanelE25isValidNestedTypeAndValueSbyF":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"String"},"Extensions/String.html#/s:SS8MixpanelE6equals3rhsSbAA0A4Type_p_tF":{"name":"equals(rhs:)","abstract":"

    Undocumented

    ","parent_name":"String"},"Extensions/Optional.html#/s:Sq8MixpanelE25isValidNestedTypeAndValueSbyF":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.

    ","parent_name":"Optional"},"Extensions/Optional.html#/s:Sq8MixpanelE6equals3rhsSbAA0A4Type_p_tF":{"name":"equals(rhs:)","abstract":"

    Undocumented

    ","parent_name":"Optional"},"Extensions/Optional.html":{"name":"Optional"},"Extensions/String.html":{"name":"String"},"Extensions/NSString.html":{"name":"NSString"},"Extensions/NSNumber.html":{"name":"NSNumber"},"Extensions/Int.html":{"name":"Int"},"Extensions/UInt.html":{"name":"UInt"},"Extensions/Double.html":{"name":"Double"},"Extensions/Float.html":{"name":"Float"},"Extensions/Bool.html":{"name":"Bool"},"Extensions/Date.html":{"name":"Date"},"Extensions/URL.html":{"name":"URL"},"Extensions/NSNull.html":{"name":"NSNull"},"Extensions/Array.html":{"name":"Array"},"Extensions/NSArray.html":{"name":"NSArray"},"Extensions/Dictionary.html":{"name":"Dictionary"},"Classes/People.html#/s:8Mixpanel6PeopleC10ignoreTimeSbvp":{"name":"ignoreTime","abstract":"

    controls the $ignore_time property in any subsequent MixpanelPeople operation.","parent_name":"People"},"Classes/People.html#/s:8Mixpanel6PeopleC3set10propertiesySDySSAA0A4Type_pG_tF":{"name":"set(properties:)","abstract":"

    Set properties on the current user in Mixpanel People.

    ","parent_name":"People"},"Classes/People.html#/s:8Mixpanel6PeopleC3set8property2toySS_AA0A4Type_ptF":{"name":"set(property:to:)","abstract":"

    Convenience method for setting a single property in Mixpanel People.

    ","parent_name":"People"},"Classes/People.html#/s:8Mixpanel6PeopleC7setOnce10propertiesySDySSAA0A4Type_pG_tF":{"name":"setOnce(properties:)","abstract":"

    Set properties on the current user in Mixpanel People, but doesn’t overwrite if","parent_name":"People"},"Classes/People.html#/s:8Mixpanel6PeopleC5unset10propertiesySaySSG_tF":{"name":"unset(properties:)","abstract":"

    Remove a list of properties and their values from the current user’s profile","parent_name":"People"},"Classes/People.html#/s:8Mixpanel6PeopleC9increment10propertiesySDySSAA0A4Type_pG_tF":{"name":"increment(properties:)","abstract":"

    Increment the given numeric properties by the given values.

    ","parent_name":"People"},"Classes/People.html#/s:8Mixpanel6PeopleC9increment8property2byySS_SdtF":{"name":"increment(property:by:)","abstract":"

    Convenience method for incrementing a single numeric property by the specified","parent_name":"People"},"Classes/People.html#/s:8Mixpanel6PeopleC6append10propertiesySDySSAA0A4Type_pG_tF":{"name":"append(properties:)","abstract":"

    Append values to list properties.

    ","parent_name":"People"},"Classes/People.html#/s:8Mixpanel6PeopleC6remove10propertiesySDySSAA0A4Type_pG_tF":{"name":"remove(properties:)","abstract":"

    Removes list properties.

    ","parent_name":"People"},"Classes/People.html#/s:8Mixpanel6PeopleC5union10propertiesySDySSAA0A4Type_pG_tF":{"name":"union(properties:)","abstract":"

    Union list properties.

    ","parent_name":"People"},"Classes/People.html#/s:8Mixpanel6PeopleC11trackCharge6amount10propertiesySd_SDySSAA0A4Type_pGSgtF":{"name":"trackCharge(amount:properties:)","abstract":"

    Track money spent by the current user for revenue analytics and associate","parent_name":"People"},"Classes/People.html#/s:8Mixpanel6PeopleC12clearChargesyyF":{"name":"clearCharges()","abstract":"

    Delete current user’s revenue history.

    ","parent_name":"People"},"Classes/People.html#/s:8Mixpanel6PeopleC10deleteUseryyF":{"name":"deleteUser()","abstract":"

    Delete current user’s record from Mixpanel People.

    ","parent_name":"People"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC8apiTokenSSvp":{"name":"apiToken","abstract":"

    apiToken string that identifies the project to track data to

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC8delegateAA0A8Delegate_pSgvp":{"name":"delegate","abstract":"

    The a MixpanelDelegate object that gives control over Mixpanel network activity.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC10distinctIdSSvp":{"name":"distinctId","abstract":"

    distinctId string that uniquely identifies the current user.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC11anonymousIdSSSgvp":{"name":"anonymousId","abstract":"

    anonymousId string that uniquely identifies the device.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC6userIdSSSgvp":{"name":"userId","abstract":"

    userId string that identify is called with.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC22hadPersistedDistinctIdSbSgvp":{"name":"hadPersistedDistinctId","abstract":"

    hadPersistedDistinctId is a boolean value which specifies that the stored distinct_id","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC5aliasSSSgvp":{"name":"alias","abstract":"

    alias string that uniquely identifies the current user.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC6peopleAA6PeopleCSgvp":{"name":"people","abstract":"

    Accessor to the Mixpanel People API object.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC28showNetworkActivityIndicatorSbvp":{"name":"showNetworkActivityIndicator","abstract":"

    Controls whether to show spinning network activity indicator when flushing","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC27trackAutomaticEventsEnabledSbvp":{"name":"trackAutomaticEventsEnabled","abstract":"

    This allows enabling or disabling collecting common mobile events,

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC13flushIntervalSdvp":{"name":"flushInterval","abstract":"

    Flush timer’s interval.","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC17flushOnBackgroundSbvp":{"name":"flushOnBackground","abstract":"

    Control whether the library should flush data to Mixpanel when the app","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC26useIPAddressForGeoLocationSbvp":{"name":"useIPAddressForGeoLocation","abstract":"

    Controls whether to automatically send the client IP Address as part of","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC14flushBatchSizeSivp":{"name":"flushBatchSize","abstract":"

    The flushBatchSize property determines the number of events sent in a single network request to the Mixpanel server.","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC9serverURLSSvp":{"name":"serverURL","abstract":"

    The base URL used for Mixpanel API requests.","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:s28CustomDebugStringConvertibleP16debugDescriptionSSvp":{"name":"debugDescription","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC14loggingEnabledSbvp":{"name":"loggingEnabled","abstract":"

    This allows enabling or disabling of all Mixpanel logs at run time.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC4nameSSvp":{"name":"name","abstract":"

    A unique identifier for this MixpanelInstance

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC22minimumSessionDurations6UInt64Vvp":{"name":"minimumSessionDuration","abstract":"

    Undocumented

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC22maximumSessionDurations6UInt64Vvp":{"name":"maximumSessionDuration","abstract":"

    The maximum session duration (ms) that is tracked in automatic events.","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC8identify10distinctId9usePeople10completionySS_SbyycSgtF":{"name":"identify(distinctId:usePeople:completion:)","abstract":"

    Sets the distinct ID of the current user.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC11createAlias_10distinctId9usePeople11andIdentify10completionySS_SSS2byycSgtF":{"name":"createAlias(_:distinctId:usePeople:andIdentify:completion:)","abstract":"

    The alias method creates an alias which Mixpanel will use to remap one id to another.","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC5reset10completionyyycSg_tF":{"name":"reset(completion:)","abstract":"

    Clears all stored properties including the distinct Id.","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC7archiveyyF":{"name":"archive()","abstract":"

    Undocumented

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC5flush16performFullFlush10completionySb_yycSgtF":{"name":"flush(performFullFlush:completion:)","abstract":"

    Uploads queued data to the Mixpanel server.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC5track5event10propertiesySSSg_SDySSAA0A4Type_pGSgtF":{"name":"track(event:properties:)","abstract":"

    Tracks an event with properties.","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC15trackWithGroups5event10properties6groupsySSSg_SDySSAA0A4Type_pGSgAKtF":{"name":"trackWithGroups(event:properties:groups:)","abstract":"

    Tracks an event with properties and to specific groups.","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC8getGroup8groupKey0E2IDAA0D0CSS_AA0A4Type_ptF":{"name":"getGroup(groupKey:groupID:)","abstract":"

    Undocumented

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC4time5eventySS_tF":{"name":"time(event:)","abstract":"

    Starts a timer that will be stopped and added as a property when a","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC16eventElapsedTime0C0SdSS_tF":{"name":"eventElapsedTime(event:)","abstract":"

    Retrieves the time elapsed for the named event since time(event:) was called.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC16clearTimedEventsyyF":{"name":"clearTimedEvents()","abstract":"

    Clears all current event timers.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC15clearTimedEvent5eventySS_tF":{"name":"clearTimedEvent(event:)","abstract":"

    Clears the event timer for the named event.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC22currentSuperPropertiesSDySSypGyF":{"name":"currentSuperProperties()","abstract":"

    Returns the currently set super properties.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC20clearSuperPropertiesyyF":{"name":"clearSuperProperties()","abstract":"

    Clears all currently set super properties.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC23registerSuperPropertiesyySDySSAA0A4Type_pGF":{"name":"registerSuperProperties(_:)","abstract":"

    Registers super properties, overwriting ones that have already been set.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC27registerSuperPropertiesOnce_12defaultValueySDySSAA0A4Type_pG_AaF_pSgtF":{"name":"registerSuperPropertiesOnce(_:defaultValue:)","abstract":"

    Registers super properties without overwriting ones that have already been set,","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC23unregisterSuperPropertyyySSF":{"name":"unregisterSuperProperty(_:)","abstract":"

    Removes a previously registered super property.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC8setGroup8groupKey0E2IDySS_AA0A4Type_ptF":{"name":"setGroup(groupKey:groupID:)","abstract":"

    Convenience method to set a single group the user belongs to.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC8setGroup8groupKey0E3IDsySS_SayAA0A4Type_pGtF":{"name":"setGroup(groupKey:groupIDs:)","abstract":"

    Set the groups this user belongs to.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC8addGroup8groupKey0E2IDySS_AA0A4Type_ptF":{"name":"addGroup(groupKey:groupID:)","abstract":"

    Add a group to this user’s membership for a particular group key

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC11removeGroup8groupKey0E2IDySS_AA0A4Type_ptF":{"name":"removeGroup(groupKey:groupID:)","abstract":"

    Remove a group from this user’s membership for a particular group key

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC14optOutTrackingyyF":{"name":"optOutTracking()","abstract":"

    Opt out tracking.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC13optInTracking10distinctId10propertiesySSSg_SDySSAA0A4Type_pGSgtF":{"name":"optInTracking(distinctId:properties:)","abstract":"

    Opt in tracking.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC19hasOptedOutTrackingSbyF":{"name":"hasOptedOutTracking()","abstract":"

    Returns if the current user has opted out tracking.

    ","parent_name":"MixpanelInstance"},"Classes/Mixpanel.html#/s:8MixpanelAAC10initialize5token20trackAutomaticEvents13flushInterval12instanceName23optOutTrackingByDefault19useUniqueDistinctId15superProperties9serverURLAA0A8InstanceCSS_SbSdSSSgS2bSDySSAA0A4Type_pGSgANtFZ":{"name":"initialize(token:trackAutomaticEvents:flushInterval:instanceName:optOutTrackingByDefault:useUniqueDistinctId:superProperties:serverURL:)","abstract":"

    Initializes an instance of the API with the given project token.

    ","parent_name":"Mixpanel"},"Classes/Mixpanel.html#/initialize(token:flushInterval:instanceName:optOutTrackingByDefault:useUniqueDistinctId:superProperties:serverURL:)":{"name":"initialize(token:flushInterval:instanceName:optOutTrackingByDefault:useUniqueDistinctId:superProperties:serverURL:)","abstract":"

    Initializes an instance of the API with the given project token (MAC OS ONLY).

    ","parent_name":"Mixpanel"},"Classes/Mixpanel.html#/s:8MixpanelAAC11getInstance4nameAA0aC0CSgSS_tFZ":{"name":"getInstance(name:)","abstract":"

    Gets the mixpanel instance with the given name

    ","parent_name":"Mixpanel"},"Classes/Mixpanel.html#/s:8MixpanelAAC12mainInstanceAA0aC0CyFZ":{"name":"mainInstance()","abstract":"

    Returns the main instance that was initialized.

    ","parent_name":"Mixpanel"},"Classes/Mixpanel.html#/s:8MixpanelAAC15setMainInstance4nameySS_tFZ":{"name":"setMainInstance(name:)","abstract":"

    Sets the main instance based on the instance name

    ","parent_name":"Mixpanel"},"Classes/Mixpanel.html#/s:8MixpanelAAC14removeInstance4nameySS_tFZ":{"name":"removeInstance(name:)","abstract":"

    Removes an unneeded Mixpanel instance based on its name

    ","parent_name":"Mixpanel"},"Classes/Group.html#/s:8Mixpanel5GroupC3set10propertiesySDySSAA0A4Type_pG_tF":{"name":"set(properties:)","abstract":"

    Sets properties on this group.

    ","parent_name":"Group"},"Classes/Group.html#/s:8Mixpanel5GroupC3set8property2toySS_AA0A4Type_ptF":{"name":"set(property:to:)","abstract":"

    Convenience method for setting a single property in Mixpanel Groups.

    ","parent_name":"Group"},"Classes/Group.html#/s:8Mixpanel5GroupC7setOnce10propertiesySDySSAA0A4Type_pG_tF":{"name":"setOnce(properties:)","abstract":"

    Sets properties on the current Mixpanel Group, but doesn’t overwrite if","parent_name":"Group"},"Classes/Group.html#/s:8Mixpanel5GroupC5unset8propertyySS_tF":{"name":"unset(property:)","abstract":"

    Remove a property and its value from a group’s profile in Mixpanel Groups.

    ","parent_name":"Group"},"Classes/Group.html#/s:8Mixpanel5GroupC6remove3key5valueySS_AA0A4Type_ptF":{"name":"remove(key:value:)","abstract":"

    Removes list properties.

    ","parent_name":"Group"},"Classes/Group.html#/s:8Mixpanel5GroupC5union3key6valuesySS_SayAA0A4Type_pGtF":{"name":"union(key:values:)","abstract":"

    Union list properties.

    ","parent_name":"Group"},"Classes/Group.html#/s:8Mixpanel5GroupC06deleteB0yyF":{"name":"deleteGroup()","abstract":"

    Delete group’s record from Mixpanel Groups.

    ","parent_name":"Group"},"Classes/Group.html":{"name":"Group","abstract":"

    Access to the Mixpanel Groups API, available through the getGroup function from"},"Classes/Mixpanel.html":{"name":"Mixpanel","abstract":"

    The primary class for integrating Mixpanel with your app.

    "},"Classes/MixpanelInstance.html":{"name":"MixpanelInstance","abstract":"

    The class that represents the Mixpanel Instance

    "},"Classes/People.html":{"name":"People","abstract":"

    Access to the Mixpanel People API, available as an accessible variable from"},"Classes.html":{"name":"Classes","abstract":"

    The following classes are available globally.

    "},"Extensions.html":{"name":"Extensions","abstract":"

    The following extensions are available globally.

    "},"Protocols.html":{"name":"Protocols","abstract":"

    The following protocols are available globally.

    "},"Typealiases.html":{"name":"Type Aliases","abstract":"

    The following type aliases are available globally.

    "}} \ No newline at end of file diff --git a/docs/undocumented.json b/docs/undocumented.json index f6c7d87ec..128be9cf5 100644 --- a/docs/undocumented.json +++ b/docs/undocumented.json @@ -1,6 +1,145 @@ { "warnings": [ - + { + "file": "/Users/jaredmcfarland/Developer/mixpanel-swift/Sources/MixpanelInstance.swift", + "line": 38, + "symbol": "Properties", + "symbol_kind": "source.lang.swift.decl.typealias", + "warning": "undocumented" + }, + { + "file": "/Users/jaredmcfarland/Developer/mixpanel-swift/Sources/MixpanelInstance.swift", + "line": 188, + "symbol": "MixpanelInstance.minimumSessionDuration", + "symbol_kind": "source.lang.swift.decl.var.instance", + "warning": "undocumented" + }, + { + "file": "/Users/jaredmcfarland/Developer/mixpanel-swift/Sources/MixpanelInstance.swift", + "line": 844, + "symbol": "MixpanelInstance.archive()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/jaredmcfarland/Developer/mixpanel-swift/Sources/MixpanelInstance.swift", + "line": 1096, + "symbol": "MixpanelInstance.getGroup(groupKey:groupID:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/jaredmcfarland/Developer/mixpanel-swift/Sources/MixpanelType.swift", + "line": 20, + "symbol": "MixpanelType.equals(rhs:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/jaredmcfarland/Developer/mixpanel-swift/Sources/MixpanelType.swift", + "line": 38, + "symbol": "Optional.equals(rhs:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/jaredmcfarland/Developer/mixpanel-swift/Sources/MixpanelType.swift", + "line": 72, + "symbol": "String.equals(rhs:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/jaredmcfarland/Developer/mixpanel-swift/Sources/MixpanelType.swift", + "line": 87, + "symbol": "NSString.equals(rhs:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/jaredmcfarland/Developer/mixpanel-swift/Sources/MixpanelType.swift", + "line": 104, + "symbol": "NSNumber.equals(rhs:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/jaredmcfarland/Developer/mixpanel-swift/Sources/MixpanelType.swift", + "line": 119, + "symbol": "Int.equals(rhs:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/jaredmcfarland/Developer/mixpanel-swift/Sources/MixpanelType.swift", + "line": 134, + "symbol": "UInt.equals(rhs:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/jaredmcfarland/Developer/mixpanel-swift/Sources/MixpanelType.swift", + "line": 150, + "symbol": "Double.equals(rhs:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/jaredmcfarland/Developer/mixpanel-swift/Sources/MixpanelType.swift", + "line": 166, + "symbol": "Float.equals(rhs:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/jaredmcfarland/Developer/mixpanel-swift/Sources/MixpanelType.swift", + "line": 180, + "symbol": "Bool.equals(rhs:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/jaredmcfarland/Developer/mixpanel-swift/Sources/MixpanelType.swift", + "line": 195, + "symbol": "Date.equals(rhs:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/jaredmcfarland/Developer/mixpanel-swift/Sources/MixpanelType.swift", + "line": 210, + "symbol": "URL.equals(rhs:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/jaredmcfarland/Developer/mixpanel-swift/Sources/MixpanelType.swift", + "line": 225, + "symbol": "NSNull.equals(rhs:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/jaredmcfarland/Developer/mixpanel-swift/Sources/MixpanelType.swift", + "line": 246, + "symbol": "Array.equals(rhs:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/jaredmcfarland/Developer/mixpanel-swift/Sources/MixpanelType.swift", + "line": 283, + "symbol": "NSArray.equals(rhs:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/jaredmcfarland/Developer/mixpanel-swift/Sources/MixpanelType.swift", + "line": 320, + "symbol": "Dictionary.equals(rhs:)", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + } ], - "source_directory": "/Users/zihejia/Documents/Projects/Develop/mixpanel-swift" + "source_directory": "/Users/jaredmcfarland/Developer/mixpanel-swift" } \ No newline at end of file

    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 diff --git a/docs/index.html b/docs/index.html index 1256e0723..4b7be01ad 100644 --- a/docs/index.html +++ b/docs/index.html @@ -16,7 +16,7 @@