diff --git a/docs/Classes/Mixpanel.html b/docs/Classes/Mixpanel.html new file mode 100644 index 000000000..4da0084ce --- /dev/null +++ b/docs/Classes/Mixpanel.html @@ -0,0 +1,3564 @@ + + + + + + Mixpanel Class Reference + + + + + + +
+
+ +

+ mixpanel-iphone +

+ +

+ Mixpanel +

+ +
+
+ + + +
+
+
+
+

Mixpanel Class Reference

+ + +
+ + + + + + + +
Inherits fromNSObject
Declared inMixpanel.h
+ + + + +
+ +

Overview

+

Mixpanel API.

+ +

The primary interface for integrating Mixpanel with your app.

+ +

Use the Mixpanel class to set up your project and track events in Mixpanel +Engagement. It now also includes a people property for accessing +the Mixpanel People API.

+ +
+// Initialize the API
+Mixpanel *mixpanel = [Mixpanel sharedInstanceWithToken:@"YOUR API TOKEN"];
+
+// Track an event in Mixpanel Engagement
+[mixpanel track:@"Button Clicked"];
+
+// Set properties on a user in Mixpanel People
+[mixpanel identify:@"CURRENT USER DISTINCT ID"];
+[mixpanel.people set:@"Plan" to:@"Premium"];
+
+ + +

For more advanced usage, please see the Mixpanel iPhone +Library Guide.

+
+ + + + + +
+ + + + + + +
+
+ +

  persistence +

+ +
+
+ +
+ + +
@property (atomic, readonly, strong) MixpanelPersistence *persistence
+ + +
+
+
+ +

  people +

+ +
+
+ +
+ + +
+

Accessor to the Mixpanel People API object.

+
+ + + +
@property (atomic, readonly, strong) MixpanelPeople *people
+ + + + + + + + + +
+

Discussion

+

See the documentation for MixpanelDelegate below for more information.

+
+ + + + + + + +
+

Declared In

+

Mixpanel.h

+
+ + +
+
+
+ +

  distinctId +

+ +
+
+ +
+ + +
+

The distinct ID of the current user.

+
+ + + +
@property (atomic, readonly, copy) NSString *distinctId
+ + + + + + + + + +
+

Discussion

+

A distinct ID is a string that uniquely identifies one of your users. By default, +we’ll use the device’s advertisingIdentifier UUIDString, if that is not available +we’ll use the device’s identifierForVendor UUIDString, and finally if that +is not available we will generate a new random UUIDString. To change the +current distinct ID, use the identify: method.

+
+ + + + + + + +
+

Declared In

+

Mixpanel.h

+
+ + +
+
+
+ +

  anonymousId +

+ +
+
+ +
+ + +
+

The default anonymous Id / distinct Id given to the events before identify.

+
+ + + +
@property (atomic, readonly, copy) NSString *anonymousId
+ + + + + + + + + +
+

Discussion

+

A default distinct ID is a string that uniquely identifies the anonymous activity. +By default, we’ll use the device’s advertisingIdentifier UUIDString, if that is not +available we’ll use the device’s identifierForVendor UUIDString, and finally if that +is not available we will generate a new random UUIDString.

+
+ + + + + + + +
+

Declared In

+

Mixpanel.h

+
+ + +
+
+
+ +

  userId +

+ +
+
+ +
+ + +
+

The user ID with which identify: is called with.

+
+ + + +
@property (atomic, readonly, copy) NSString *userId
+ + + + + + + + + +
+

Discussion

+

This is null until identify: is called and is set to the id + with which identify is called with.

+
+ + + + + + + +
+

Declared In

+

Mixpanel.h

+
+ + +
+
+
+ +

  alias +

+ +
+
+ +
+ + +
+

The alias of the current user.

+
+ + + +
@property (atomic, readonly, copy) NSString *alias
+ + + + + + + + + +
+

Discussion

+

An alias is another string that uniquely identifies one of your users. Typically, +this is the user ID from your database. By using an alias you can link pre- and +post-sign up activity as well as cross-platform activity under one distinct ID. +To set the alias use the createAlias:forDistinctID: method.

+
+ + + + + + + +
+

Declared In

+

Mixpanel.h

+
+ + +
+
+
+ +

  hadPersistedDistinctId +

+ +
+
+ +
+ + +
+

A flag which says if a distinctId is already in peristence from old sdk + Defaults to NO.

+
+ + + +
@property (nonatomic, assign) BOOL hadPersistedDistinctId
+ + + + + + + + + + + + + + + +
+

Declared In

+

Mixpanel.h

+
+ + +
+
+
+ +

  serverURL +

+ +
+
+ +
+ + +
+

The base URL used for Mixpanel API requests.

+
+ + + +
@property (nonatomic, copy) NSString *serverURL
+ + + + + + + + + +
+

Discussion

+

Useful if you need to proxy Mixpanel requests. Defaults to +https://api.mixpanel.com.

+
+ + + + + + + +
+

Declared In

+

Mixpanel.h

+
+ + +
+
+
+ +

  flushInterval +

+ +
+
+ +
+ + +
+

Flush timer’s interval.

+
+ + + +
@property (atomic) NSUInteger flushInterval
+ + + + + + + + + +
+

Discussion

+

Setting a flush interval of 0 will turn off the flush timer.

+
+ + + + + + + +
+

Declared In

+

Mixpanel.h

+
+ + +
+
+
+ +

  flushOnBackground +

+ +
+
+ +
+ + +
+

Control whether the library should flush data to Mixpanel when the app +enters the background.

+
+ + + +
@property (atomic) BOOL flushOnBackground
+ + + + + + + + + +
+

Discussion

+

Defaults to YES. Only affects apps targeted at iOS 4.0, when background +task support was introduced, and later.

+
+ + + + + + + +
+

Declared In

+

Mixpanel.h

+
+ + +
+
+
+ +

  shouldManageNetworkActivityIndicator +

+ +
+
+ +
+ + +
+

Controls whether to show spinning network activity indicator when flushing +data to the Mixpanel servers.

+
+ + + +
@property (atomic) BOOL shouldManageNetworkActivityIndicator
+ + + + + + + + + +
+

Discussion

+

Defaults to YES.

+
+ + + + + + + +
+

Declared In

+

Mixpanel.h

+
+ + +
+
+
+ +

  useIPAddressForGeoLocation +

+ +
+
+ +
+ + +
+

Controls whether to automatically send the client IP Address as part of +event tracking. With an IP address, geo-location is possible down to neighborhoods +within a city, although the Mixpanel Dashboard will just show you city level location +specificity. For privacy reasons, you may be in a situation where you need to forego +effectively having access to such granular location information via the IP Address.

+
+ + + +
@property (atomic) BOOL useIPAddressForGeoLocation
+ + + + + + + + + +
+

Discussion

+

Defaults to YES.

+
+ + + + + + + +
+

Declared In

+

Mixpanel.h

+
+ + +
+
+
+ +

  useUniqueDistinctId +

+ +
+
+ +
+ + +
+

Controls whether or not to use a unique device identifier for the Mixpanel Distinct ID

+
+ + + +
@property (atomic) BOOL useUniqueDistinctId
+ + + + + + + + + +
+

Discussion

+

Defaults to NO

+
+ + + + + + + +
+

Declared In

+

Mixpanel.h

+
+ + +
+
+
+ +

  trackAutomaticEventsEnabled +

+ +
+
+ +
+ + +
+

This allows enabling or disabling collecting common mobile events

+
+ + + +
@property (nonatomic) BOOL trackAutomaticEventsEnabled
+ + + + + + + + + + + + + + + +
+

Declared In

+

Mixpanel.h

+
+ + +
+
+
+ +

  enableLogging +

+ +
+
+ +
+ + +
+

Controls whether to enable the run time debug logging at all levels. Note that the +Mixpanel SDK uses Apple System Logging to forward log messages to STDERR, this also +means that mixpanel logs are segmented by log level. Settings this to YES will enable +Mixpanel logging at the following levels:

+
+ + + +
@property (atomic) BOOL enableLogging
+ + + + + + + + + +
+

Discussion

+
    +
  • Error - Something has failed
  • +
  • Warning - Something is amiss and might fail if not corrected
  • +
  • Info - The lowest priority that is normally logged, purely informational in nature
  • +
  • Debug - Information useful only to developers, and normally not logged.
  • +
+ + +

Defaults to NO.

+
+ + + + + + + +
+

Declared In

+

Mixpanel.h

+
+ + +
+
+
+ +

  minimumSessionDuration +

+ +
+
+ +
+ + +
+

The minimum session duration (ms) that is tracked in automatic events.

+
+ + + +
@property (atomic) UInt64 minimumSessionDuration
+ + + + + + + + + +
+

Discussion

+

The default value is 10000 (10 seconds).

+
+ + + + + + + +
+

Declared In

+

Mixpanel.h

+
+ + +
+
+
+ +

  maximumSessionDuration +

+ +
+
+ +
+ + +
+

The maximum session duration (ms) that is tracked in automatic events.

+
+ + + +
@property (atomic) UInt64 maximumSessionDuration
+ + + + + + + + + +
+

Discussion

+

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

+
+ + + + + + + +
+

Declared In

+

Mixpanel.h

+
+ + +
+
+
+ +

  delegate +

+ +
+
+ +
+ + +
+

The a MixpanelDelegate object that can be used to assert fine-grain control +over Mixpanel network activity.

+
+ + + +
@property (atomic, weak) id<MixpanelDelegate> delegate
+ + + + + + + + + +
+

Discussion

+

Using a delegate is optional. See the documentation for MixpanelDelegate +below for more information.

+
+ + + + + + + +
+

Declared In

+

Mixpanel.h

+
+ + +
+
+
+ +

+ sharedInstanceWithToken:trackAutomaticEvents: +

+ +
+
+ +
+ + +
+

Returns (and creates, if needed) a singleton instance of the API.

+
+ + + +
+ (Mixpanel *)sharedInstanceWithToken:(NSString *)apiToken trackAutomaticEvents:(BOOL)trackAutomaticEvents
+ + + +
+

Parameters

+ + + + + + + + + + + + +
apiToken

your project token

trackAutomaticEvents

whether or not to track automatic events

+
+ + + + + + + +
+

Discussion

+

This method will return a singleton instance of the Mixpanel class for +you using the given project token. If an instance does not exist, this method will create +one using initWithToken:flushInterval:. If you only have one +instance in your project, you can use sharedInstance to retrieve it.

+ +
+[[Mixpanel sharedInstance]](#//api/name/sharedInstance) track:@"Something Happened"]];
+
+ + +

If you are going to use this singleton approach, +sharedInstanceWithToken: must be the first call to the +Mixpanel class, since it performs important initializations to +the API.

+
+ + + + + + + +
+

Declared In

+

Mixpanel.h

+
+ + +
+
+
+ +

+ sharedInstanceWithToken:trackAutomaticEvents:optOutTrackingByDefault: +

+ +
+
+ +
+ + +
+

Initializes a singleton instance of the API, uses it to set whether or not to opt out tracking for +GDPR compliance, and then returns it.

+
+ + + +
+ (Mixpanel *)sharedInstanceWithToken:(NSString *)apiToken trackAutomaticEvents:(BOOL)trackAutomaticEvents optOutTrackingByDefault:(BOOL)optOutTrackingByDefault
+ + + +
+

Parameters

+ + + + + + + + + + + + + + + + + +
apiToken

your project token

trackAutomaticEvents

whether or not to track automatic events

optOutTrackingByDefault

whether or not to be opted out from tracking by default

+
+ + + + + + + +
+

Discussion

+

With the optOutTrackingByDefault parameter, Mixpanel tracking can be opted out by default.

+
+ + + + + + + +
+

Declared In

+

Mixpanel.h

+
+ + +
+
+
+ +

+ sharedInstanceWithToken:trackAutomaticEvents:trackCrashes: +

+ +
+
+ +
+ + +
+

Initializes a singleton instance of the API, uses it to track crashes, and then returns it.

+
+ + + +
+ (Mixpanel *)sharedInstanceWithToken:(NSString *)apiToken trackAutomaticEvents:(BOOL)trackAutomaticEvents trackCrashes:(BOOL)trackCrashes
+ + + +
+

Parameters

+ + + + + + + + + + + + + + + + + +
apiToken

your project token

trackAutomaticEvents

whether or not to track automatic events

trackCrashes

whether or not to track crashes in Mixpanel. may want to disable if you’re seeing +issues with your crash reporting for either signals or exceptions

+
+ + + + + + + +
+

Discussion

+

With the trackCrashes parameter, Mixpanel can track crashes.

+
+ + + + + + + +
+

Declared In

+

Mixpanel.h

+
+ + +
+
+
+ +

+ sharedInstanceWithToken:trackAutomaticEvents:useUniqueDistinctId: +

+ +
+
+ +
+ + +
+

Initializes a singleton instance of the API, using the unique device identifier for distinct_id and then returns it.

+
+ + + +
+ (Mixpanel *)sharedInstanceWithToken:(NSString *)apiToken trackAutomaticEvents:(BOOL)trackAutomaticEvents useUniqueDistinctId:(BOOL)useUniqueDistinctId
+ + + +
+

Parameters

+ + + + + + + + + + + + + + + + + +
apiToken

your project token

trackAutomaticEvents

whether or not to track automatic events

useUniqueDistinctId

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

+
+ + + + + + + +
+

Discussion

+

With the useUniqueDistinctId parameter, Mixpanel will use a unique device id for distinct_id.

+
+ + + + + + + +
+

Declared In

+

Mixpanel.h

+
+ + +
+
+
+ +

+ sharedInstanceWithToken:trackAutomaticEvents:trackCrashes:optOutTrackingByDefault:useUniqueDistinctId: +

+ +
+
+ +
+ + +
+

Initializes a singleton instance of the API, uses it to track crashes, set whether or not to opt out tracking for +GDPR compliance, and then returns it.

+
+ + + +
+ (Mixpanel *)sharedInstanceWithToken:(NSString *)apiToken trackAutomaticEvents:(BOOL)trackAutomaticEvents trackCrashes:(BOOL)trackCrashes optOutTrackingByDefault:(BOOL)optOutTrackingByDefault useUniqueDistinctId:(BOOL)useUniqueDistinctId
+ + + +
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
apiToken

your project token

trackAutomaticEvents

whether or not to track automatic events

trackCrashes

whether or not to track crashes in Mixpanel. may want to disable if you’re seeing +issues with your crash reporting for either signals or exceptions

optOutTrackingByDefault

whether or not to be opted out from tracking by default

useUniqueDistinctId

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

+
+ + + + + + + +
+

Discussion

+

With the optOutTrackingByDefault parameter, Mixpanel tracking can be opted out by default.

+
+ + + + + + + +
+

Declared In

+

Mixpanel.h

+
+ + +
+
+
+ +

+ sharedInstance +

+ +
+
+ +
+ + +
+

Returns a previously instantiated singleton instance of the API.

+
+ + + +
+ (nullable Mixpanel *)sharedInstance
+ + + + + + + + + +
+

Discussion

+

The API must be initialized with sharedInstanceWithToken: or +initWithToken:flushInterval before calling this class method. +This method will return nil if there are no instances created. If there is more than +one instace, it will return the first one that was created by using sharedInstanceWithToken: +or initWithToken:flushInterval:.

+
+ + + + + + + +
+

Declared In

+

Mixpanel.h

+
+ + +
+
+
+ +

– initWithToken:trackAutomaticEvents:flushInterval:trackCrashes:useUniqueDistinctId: +

+ +
+
+ +
+ + +
+

Initializes an instance of the API with the given project token. This also sets +it as a shared instance so you can use sharedInstance or +sharedInstanceWithToken: to retrieve this object later.

+
+ + + +
- (instancetype)initWithToken:(NSString *)apiToken trackAutomaticEvents:(BOOL)trackAutomaticEvents flushInterval:(NSUInteger)flushInterval trackCrashes:(BOOL)trackCrashes useUniqueDistinctId:(BOOL)useUniqueDistinctId
+ + + +
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
apiToken

your project token

trackAutomaticEvents

whether or not to track automatic events

flushInterval

interval to run background flushing

trackCrashes

whether or not to track crashes in Mixpanel. may want to disable if you’re seeing + issues with your crash reporting for either signals or exceptions

useUniqueDistinctId

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

+
+ + + + + + + +
+

Discussion

+

Creates and initializes a new API object. See also sharedInstanceWithToken:.

+
+ + + + + + + +
+

Declared In

+

Mixpanel.h

+
+ + +
+
+
+ +

– initWithToken:trackAutomaticEvents:andFlushInterval: +

+ +
+
+ +
+ + +
+

Initializes an instance of the API with the given project token. This also sets +it as a shared instance so you can use sharedInstance or +sharedInstanceWithToken: to retrieve this object later.

+
+ + + +
- (instancetype)initWithToken:(NSString *)apiToken trackAutomaticEvents:(BOOL)trackAutomaticEvents andFlushInterval:(NSUInteger)flushInterval
+ + + +
+

Parameters

+ + + + + + + + + + + + + + + + + +
apiToken

your project token

trackAutomaticEvents

whether or not to track automatic events

flushInterval

interval to run background flushing

+
+ + + + + + + +
+

Discussion

+

Creates and initializes a new API object. See also sharedInstanceWithToken:.

+
+ + + + + + + +
+

Declared In

+

Mixpanel.h

+
+ + +
+
+
+ +

– identify: +

+ +
+
+ +
+ + +
+

Sets the distinct ID of the current user.

+
+ + + +
- (void)identify:(NSString *)distinctId
+ + + +
+

Parameters

+ + + + + + + +
distinctId

string that uniquely identifies the current user

+
+ + + + + + + +
+

Discussion

+

Mixpanel uses a randomly generated persistent UUID as the default local distinct ID.

+ +

If you want to use a unique persistent UUID, you can define the +MIXPANEL_UNIQUE_DISTINCT_ID preprocessor flag in your build settings. +It then uses the IFV String (UIDevice.current().identifierForVendor) as the default local distinct ID. +This ID will identify a user across all apps by the same vendor, but cannot be used to link the same +user across apps from different vendors. If we are unable to get an IFV, we will fall back to generating +a random persistent UUID.

+ +

For tracking events, you do not need to call identify:. +However, Mixpanel User profiles always require an +explicit call to identify:. If calls are made to +set:, increment or other MixpanelPeople +methods prior to calling identify:, then they are queued up and +flushed once identify: is called.

+ +

If you’d like to use the default distinct ID for Mixpanel People as well +(recommended), call identify: using the current distinct ID: +[mixpanel identify:mixpanel.distinctId].

+
+ + + + + + + +
+

Declared In

+

Mixpanel.h

+
+ + +
+
+
+ +

– identify:usePeople: +

+ +
+
+ +
+ + +
+

Sets the distinct ID of the current user. With the option of only updating the +distinct ID value and not the Mixpanel People distinct ID.

+
+ + + +
- (void)identify:(NSString *)distinctId usePeople:(BOOL)usePeople
+ + + +
+

Parameters

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

string that uniquely identifies the current user

usePeople

bool controls whether or not to set the people distinctId to the event distinctId

+
+ + + + + + + +
+

Discussion

+

This method is not intended to be used unless you wish to prevent updating the Mixpanel +People distinct ID value by passing a value of NO to the usePeople param. This can be +useful if the user wishes to prevent People updates from being sent until the identify +method is called.

+
+ + + + + + + +
+

Declared In

+

Mixpanel.h

+
+ + +
+
+
+ +

– addGroup:groupID: +

+ +
+
+ +
+ + +
+

Add a group to this user’s membership for a particular group key. +The groupKey must be an NSString. The groupID should be a legal MixpanelType value.

+
+ + + +
- (void)addGroup:(NSString *)groupKey groupID:(id<MixpanelType>)groupID
+ + + +
+

Parameters

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

the group key

groupID

the group ID

+
+ + + + + + + + + + + + + +
+

Declared In

+

Mixpanel.h

+
+ + +
+
+
+ +

– removeGroup:groupID: +

+ +
+
+ +
+ + +
+

Remove a group from this user’s membership for a particular group key. +The groupKey must be an NSString. The groupID should be a legal MixpanelType value.

+
+ + + +
- (void)removeGroup:(NSString *)groupKey groupID:(id<MixpanelType>)groupID
+ + + +
+

Parameters

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

the group key

groupID

the group ID

+
+ + + + + + + + + + + + + +
+

Declared In

+

Mixpanel.h

+
+ + +
+
+
+ +

– setGroup:groupIDs: +

+ +
+
+ +
+ + +
+

Set the group to which the user belongs. +The groupKey must be an NSString. The groupID should be an array +of MixpanelTypes.

+
+ + + +
- (void)setGroup:(NSString *)groupKey groupIDs:(NSArray<id<MixpanelType> > *)groupIDs
+ + + +
+

Parameters

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

the group key

groupIDs

the group IDs

+
+ + + + + + + + + + + + + +
+

Declared In

+

Mixpanel.h

+
+ + +
+
+
+ +

– setGroup:groupID: +

+ +
+
+ +
+ + +
+

Convenience method to set a single group ID for the current user.

+
+ + + +
- (void)setGroup:(NSString *)groupKey groupID:(id<MixpanelType>)groupID
+ + + +
+

Parameters

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

the group key

groupID

the group ID

+
+ + + + + + + + + + + + + +
+

Declared In

+

Mixpanel.h

+
+ + +
+
+
+ +

– trackWithGroups:properties:groups: +

+ +
+
+ +
+ + +
+

Tracks an event with specific groups.

+
+ + + +
- (void)trackWithGroups:(NSString *)event properties:(NSDictionary *)properties groups:(NSDictionary *)groups
+ + + +
+

Parameters

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

event name

properties

properties dictionary

groups

groups dictionary, which contains key-value pairs +for this event

+
+ + + + + + + +
+

Discussion

+

Similar to track(), the data will also be sent to the specific group +datasets. Group key/value pairs are upserted into the property map +before tracking. +The keys in groups must be NSString objects. values can be any legal +MixpanelType objects. If the event is being timed, the timer will +stop and be added as a property.

+
+ + + + + + + +
+

Declared In

+

Mixpanel.h

+
+ + +
+
+
+ +

– getGroup:groupID: +

+ +
+
+ +
+ + +
+

Get a MixpanelGroup identifier from groupKey and groupID. +The groupKey must be an NSString. The groupID should be a legal MixpanelType value.

+
+ + + +
- (MixpanelGroup *)getGroup:(NSString *)groupKey groupID:(id<MixpanelType>)groupID
+ + + +
+

Parameters

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

the group key

groupID

the group ID

+
+ + + + + + + + + + + + + +
+

Declared In

+

Mixpanel.h

+
+ + +
+
+
+ +

– track: +

+ +
+
+ +
+ + +
+

Tracks an event.

+
+ + + +
- (void)track:(NSString *)event
+ + + +
+

Parameters

+ + + + + + + +
event

event name

+
+ + + + + + + + + + + + + +
+

Declared In

+

Mixpanel.h

+
+ + +
+
+
+ +

– track:properties: +

+ +
+
+ +
+ + +
+

Tracks an event with properties.

+
+ + + +
- (void)track:(NSString *)event properties:(nullable NSDictionary *)properties
+ + + +
+

Parameters

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

event name

properties

properties dictionary

+
+ + + + + + + +
+

Discussion

+

Properties will allow you to segment your events in your Mixpanel reports. +Property keys must be NSString objects and values must be +NSString, NSNumber, NSNull, +NSArray, NSDictionary, NSDate or +NSURL objects. If the event is being timed, the timer will +stop and be added as a property.

+
+ + + + + + + +
+

Declared In

+

Mixpanel.h

+
+ + +
+
+
+ +

– registerSuperProperties: +

+ +
+
+ +
+ + +
+

Registers super properties, overwriting ones that have already been set.

+
+ + + +
- (void)registerSuperProperties:(NSDictionary *)properties
+ + + +
+

Parameters

+ + + + + + + +
properties

properties dictionary

+
+ + + + + + + +
+

Discussion

+

Super properties, once registered, are automatically sent as properties for +all event tracking calls. They save you having to maintain and add a common +set of properties to your events. Property keys must be NSString +objects and values must be NSString, NSNumber, +NSNull, NSArray, NSDictionary, +NSDate or NSURL objects.

+
+ + + + + + + +
+

Declared In

+

Mixpanel.h

+
+ + +
+
+
+ +

– registerSuperPropertiesOnce: +

+ +
+
+ +
+ + +
+

Registers super properties without overwriting ones that have already been +set.

+
+ + + +
- (void)registerSuperPropertiesOnce:(NSDictionary *)properties
+ + + +
+

Parameters

+ + + + + + + +
properties

properties dictionary

+
+ + + + + + + +
+

Discussion

+

Property keys must be NSString objects and values must be +NSString, NSNumber, NSNull, +NSArray, NSDictionary, NSDate or +NSURL objects.

+
+ + + + + + + +
+

Declared In

+

Mixpanel.h

+
+ + +
+
+
+ +

– registerSuperPropertiesOnce:defaultValue: +

+ +
+
+ +
+ + +
+

Registers super properties without overwriting ones that have already been set +unless the existing value is equal to defaultValue.

+
+ + + +
- (void)registerSuperPropertiesOnce:(NSDictionary *)properties defaultValue:(nullable id)defaultValue
+ + + +
+

Parameters

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

properties dictionary

defaultValue

overwrite existing properties that have this value

+
+ + + + + + + +
+

Discussion

+

Property keys must be NSString objects and values must be +NSString, NSNumber, NSNull, +NSArray, NSDictionary, NSDate or +NSURL objects.

+
+ + + + + + + +
+

Declared In

+

Mixpanel.h

+
+ + +
+
+
+ +

– unregisterSuperProperty: +

+ +
+
+ +
+ + +
+

Removes a previously registered super property.

+
+ + + +
- (void)unregisterSuperProperty:(NSString *)propertyName
+ + + +
+

Parameters

+ + + + + + + +
propertyName

array of property name strings to remove

+
+ + + + + + + +
+

Discussion

+

As an alternative to clearing all properties, unregistering specific super +properties prevents them from being recorded on future events. This operation +does not affect the value of other super properties. Any property name that is +not registered is ignored.

+ +

Note that after removing a super property, events will show the attribute as +having the value undefined in Mixpanel until a new value is +registered.

+
+ + + + + + + +
+

Declared In

+

Mixpanel.h

+
+ + +
+
+
+ +

– clearSuperProperties +

+ +
+
+ +
+ + +
+

Clears all currently set super properties.

+
+ + + +
- (void)clearSuperProperties
+ + + + + + + + + + + + + + + +
+

Declared In

+

Mixpanel.h

+
+ + +
+
+
+ +

– currentSuperProperties +

+ +
+
+ +
+ + +
+

Returns the currently set super properties.

+
+ + + +
- (NSDictionary *)currentSuperProperties
+ + + + + + + + + + + + + + + +
+

Declared In

+

Mixpanel.h

+
+ + +
+
+
+ +

– timeEvent: +

+ +
+
+ +
+ + +
+

Starts a timer that will be stopped and added as a property when a +corresponding event is tracked.

+
+ + + +
- (void)timeEvent:(NSString *)event
+ + + +
+

Parameters

+ + + + + + + +
event

a string, identical to the name of the event that will be tracked

+
+ + + + + + + +
+

Discussion

+

This method is intended to be used in advance of events that have +a duration. For example, if a developer were to track an “Image Upload” event +she might want to also know how long the upload took. Calling this method +before the upload code would implicitly cause the track +call to record its duration.

+ +
+// begin timing the image upload
+[mixpanel timeEvent:@"Image Upload"];
+
+// upload the image
+[self uploadImageWithSuccessHandler:^{
+
+    // track the event
+    [mixpanel track:@"Image Upload"];
+}];
+
+ +
+ + + + + + + +
+

Declared In

+

Mixpanel.h

+
+ + +
+
+
+ +

– eventElapsedTime: +

+ +
+
+ +
+ + +
+

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

+
+ + + +
- (double)eventElapsedTime:(NSString *)event
+ + + +
+

Parameters

+ + + + + + + +
event

the name of the event to be tracked that was passed to timeEvent:

+
+ + + + + + + + + + + + + +
+

Declared In

+

Mixpanel.h

+
+ + +
+
+
+ +

– clearTimedEvent: +

+ +
+
+ +
+ + +
+

Clears the event timer for the named event.

+
+ + + +
- (void)clearTimedEvent:(NSString *)event
+ + + +
+

Parameters

+ + + + + + + +
event

the name of the event to clear the timer for

+
+ + + + + + + + + + + + + +
+

Declared In

+

Mixpanel.h

+
+ + +
+
+
+ +

– clearTimedEvents +

+ +
+
+ +
+ + +
+

Clears all current event timers.

+
+ + + +
- (void)clearTimedEvents
+ + + + + + + + + + + + + + + +
+

Declared In

+

Mixpanel.h

+
+ + +
+
+
+ +

– reset +

+ +
+
+ +
+ + +
+

Clears all stored properties and distinct IDs. Useful if your app’s user logs out.

+
+ + + +
- (void)reset
+ + + + + + + + + + + + + + + +
+

Declared In

+

Mixpanel.h

+
+ + +
+
+
+ +

– flush +

+ +
+
+ +
+ + +
+

Uploads queued data to the Mixpanel server.

+
+ + + +
- (void)flush
+ + + + + + + + + +
+

Discussion

+

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 +method manually if you want to force a flush at a particular moment.

+
+ + + + + + + +
+

Declared In

+

Mixpanel.h

+
+ + +
+
+
+ +

– flushWithCompletion: +

+ +
+
+ +
+ + +
+

Calls flush, then optionally archives and calls a handler when finished.

+
+ + + +
- (void)flushWithCompletion:(nullable void ( ^ ) ( void ))handler
+ + + +
+

Parameters

+ + + + + + + +
handler

completion handler to be called after flush completes

+
+ + + + + + + +
+

Discussion

+

When calling flush manually, it is sometimes important to verify +that the flush has finished before further action is taken. This is +especially important when the app is in the background and could be suspended +at any time if protocol is not followed.

+
+ + + + + + + +
+

Declared In

+

Mixpanel.h

+
+ + +
+
+
+ +

– archive +

+ +
+
+ +
+ + +
+

Writes current project info, including distinct ID, super properties to disk.

+
+ + + +
- (void)archive
+ + + + + + + + + +
+

Discussion

+

This state will be recovered when the app is launched again if the Mixpanel +library is initialized with the same project token. You do not need to call +this method. The library listens for app state changes and handles +persisting data as needed. It can be useful in some special circumstances, +though, for example, if you’d like to track app crashes from main.m.

+
+ + + + + + + +
+

Declared In

+

Mixpanel.h

+
+ + +
+
+
+ +

– createAlias:forDistinctID: +

+ +
+
+ +
+ + +
+

The alias method creates an alias which Mixpanel will use to remap one id to another. Multiple aliases can point to the same identifier.

+
+ + + +
- (void)createAlias:(NSString *)alias forDistinctID:(NSString *)distinctID
+ + + +
+

Parameters

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

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

distinctID

The current user identifier.

+
+ + + + + + + +
+

Discussion

+
+[mixpanel createAlias:@"New ID"
+         forDistinctID:mixpanel.distinctId];
+
+// You can add multiple id aliases to the existing id
+[mixpanel createAlias:@"Newer ID"
+         forDistinctID:mixpanel.distinctId];
+
+ +
+ + + + + + + +
+

Declared In

+

Mixpanel.h

+
+ + +
+
+
+ +

– createAlias:forDistinctID:usePeople: +

+ +
+
+ +
+ + +
+

Creates a distinct_id alias from alias to original id.

+
+ + + +
- (void)createAlias:(NSString *)alias forDistinctID:(NSString *)distinctID usePeople:(BOOL)usePeople
+ + + +
+

Parameters

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

the new distinct_id that should represent original

distinctID

the old distinct_id that alias will be mapped to

usePeople

bool controls whether or not to set the people distinctId to the event distinctId

+
+ + + + + + + +
+

Discussion

+

This method is not intended to be used unless you wish to prevent updating the Mixpanel +People distinct ID value by passing a value of NO to the usePeople param. This can be +useful if the user wishes to prevent People updates from being sent until the identify +method is called.

+
+ + + + + + + +
+

Declared In

+

Mixpanel.h

+
+ + +
+
+
+ +

– libVersion +

+ +
+
+ +
+ + +
+

Returns the Mixpanel library version number as a string, e.g. “3.2.3”.

+
+ + + +
- (NSString *)libVersion
+ + + + + + + + + + + + + + + +
+

Declared In

+

Mixpanel.h

+
+ + +
+
+
+ +

– optOutTracking +

+ +
+
+ +
+ + +
+

Opt out tracking.

+
+ + + +
- (void)optOutTracking
+ + + + + + + + + +
+

Discussion

+

This method is used to opt out tracking. This causes all events and people request no longer +to be sent back to the Mixpanel server.

+
+ + + + + + + +
+

Declared In

+

Mixpanel.h

+
+ + +
+
+
+ +

– optInTracking +

+ +
+
+ +
+ + +
+

Opt in tracking.

+
+ + + +
- (void)optInTracking
+ + + + + + + + + +
+

Discussion

+

Use this method to opt in an already opted out user from tracking. People updates and track calls will be +sent to Mixpanel after using this method.

+ +

This method will internally track an opt in event to your project. If you want to identify the opt-in +event and/or pass properties to the event, See also optInTrackingForDistinctId: and +optInTrackingForDistinctId:withEventProperties:.

+
+ + + + + + + +
+

Declared In

+

Mixpanel.h

+
+ + +
+
+
+ +

– optInTrackingForDistinctID: +

+ +
+
+ +
+ + +
+

Opt in tracking.

+
+ + + +
- (void)optInTrackingForDistinctID:(nullable NSString *)distinctID
+ + + +
+

Parameters

+ + + + + + + +
distinctID

optional string to use as the distinct ID for events. This will call identify:. +If you use people profiles make sure you manually call identify: after this method.

+
+ + + + + + + +
+

Discussion

+

Use this method to opt in an already opted out user from tracking. People updates and track calls will be +sent to Mixpanel after using this method.

+ +

This method will internally track an opt in event to your project. If you want to pass properties to the event, see also +optInTrackingForDistinctId:withEventProperties:.

+
+ + + + + + + +
+

Declared In

+

Mixpanel.h

+
+ + +
+
+
+ +

– optInTrackingForDistinctID:withEventProperties: +

+ +
+
+ +
+ + +
+

Opt in tracking.

+
+ + + +
- (void)optInTrackingForDistinctID:(nullable NSString *)distinctID withEventProperties:(nullable NSDictionary *)properties
+ + + +
+

Parameters

+ + + + + + + + + + + + +
distinctID

optional string to use as the distinct ID for events. This will call identify:. +If you use people profiles make sure you manually call identify: after this method.

properties

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

+
+ + + + + + + +
+

Discussion

+

Use this method to opt in an already opted out user from tracking. People updates and track calls will be +sent to Mixpanel after using this method.

+ +

This method will internally track an opt in event to your project.See also optInTracking or +optInTrackingForDistinctId:.

+
+ + + + + + + +
+

Declared In

+

Mixpanel.h

+
+ + +
+
+
+ +

– hasOptedOutTracking +

+ +
+
+ +
+ + +
+

Returns YES if the current user has opted out tracking, NO if the current user has opted in tracking.

+
+ + + +
- (BOOL)hasOptedOutTracking
+ + + + + + + + + + + + + + + +
+

Declared In

+

Mixpanel.h

+
+ + +
+
+
+ +

+ libVersion +

+ +
+
+ +
+ + +
+

Returns the Mixpanel library version number as a string, e.g. “3.2.3”.

+
+ + + +
+ (NSString *)libVersion
+ + + + + + + + + + + + + + + +
+

Declared In

+

Mixpanel.h

+
+ + +
+
+
+
+ +
+ + + + + + +
+ + +
+
+
+ + + + \ No newline at end of file diff --git a/docs/Classes/MixpanelGroup.html b/docs/Classes/MixpanelGroup.html new file mode 100644 index 000000000..1fe1c287f --- /dev/null +++ b/docs/Classes/MixpanelGroup.html @@ -0,0 +1,476 @@ + + + + + + MixpanelGroup Class Reference + + + + + + +
+
+ +

+ mixpanel-iphone +

+ +

+ Mixpanel +

+ +
+
+ + + +
+
+
+
+

MixpanelGroup Class Reference

+ + +
+ + + + + + + +
Inherits fromNSObject
Declared inMixpanelGroup.h
+ + + + + + +
+ + + + + + +
+
+ +

– set: +

+ +
+
+ +
+ + +
+

Set properties on this Mixpanel Group. Keys in properties must be NSString, +and values are MixpanelTypes.

+
+ + + +
- (void)set:(NSDictionary *)properties
+ + + +
+

Parameters

+ + + + + + + +
properties

properties dictionary

+
+ + + + + + + +
+

Discussion

+

The properties will be set on the current group. We use an NSAssert to enforce +this type requirement. In release mode, the assert is stripped out and we will silently convert +incorrect types to strings using [NSString stringWithFormat:@“%@”, value]. +If the existing group record on the server already has a value for a given property, +the old value is overwritten. Other existing properties will not be affected.

+
+ + + + + + + +
+

Declared In

+

MixpanelGroup.h

+
+ + +
+
+
+ +

– setOnce: +

+ +
+
+ +
+ + +
+

Set properties on this Mixpanel Group, but don’t overwrite if +there are existing values.

+
+ + + +
- (void)setOnce:(NSDictionary *)properties
+ + + +
+

Parameters

+ + + + + + + +
properties

properties dictionary

+
+ + + + + + + +
+

Discussion

+

This method is identical to set() except it will only set +properties that are not already set.

+
+ + + + + + + +
+

Declared In

+

MixpanelGroup.h

+
+ + +
+
+
+ +

– unset: +

+ +
+
+ +
+ + +
+

Remove a property and all its values from this Mixpanel Group. For +properties that aren’t set will be no effect.

+
+ + + +
- (void)unset:(NSString *)property
+ + + +
+

Parameters

+ + + + + + + +
property

the property to be unset

+
+ + + + + + + + + + + + + +
+

Declared In

+

MixpanelGroup.h

+
+ + +
+
+
+ +

– union:values: +

+ +
+
+ +
+ + +
+

Union list properties.

+
+ + + +
- (void)union:(NSString *)property values:(NSArray<id<MixpanelType> > *)values
+ + + +
+

Parameters

+ + + + + + + +
property

mapping of list property names to lists to union

+
+ + + + + + + +
+

Discussion

+

Property keys must be NSString objects.

+
+ + + + + + + +
+

Declared In

+

MixpanelGroup.h

+
+ + +
+
+
+ +

– deleteGroup +

+ +
+
+ +
+ + +
+

Permanently remove a group on server side.

+
+ + + +
- (void)deleteGroup
+ + + + + + + + + + + + + + + +
+

Declared In

+

MixpanelGroup.h

+
+ + +
+
+
+ +

– remove:value: +

+ +
+
+ +
+ + +
+

Remove one value from a group property.

+
+ + + +
- (void)remove:(NSString *)property value:(id<MixpanelType>)value
+ + + +
+

Parameters

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

the name of group property

value

the value to be removed

+
+ + + + + + + + + + + + + +
+

Declared In

+

MixpanelGroup.h

+
+ + +
+
+
+
+ +
+ + + + + + +
+ + +
+
+
+ + + + \ No newline at end of file diff --git a/docs/Classes/MixpanelPeople.html b/docs/Classes/MixpanelPeople.html new file mode 100644 index 000000000..8d7eb6bd0 --- /dev/null +++ b/docs/Classes/MixpanelPeople.html @@ -0,0 +1,991 @@ + + + + + + MixpanelPeople Class Reference + + + + + + +
+
+ +

+ mixpanel-iphone +

+ +

+ Mixpanel +

+ +
+
+ + + +
+
+
+
+

MixpanelPeople Class Reference

+ + +
+ + + + + + + +
Inherits fromNSObject
Declared inMixpanelPeople.h
+ + + + +
+ +

Overview

+

Mixpanel People API.

+ +

Access to the Mixpanel People API, available as a property on the main +Mixpanel API.

+ +

You should not instantiate this object yourself. An instance of it will +be available as a property of the main Mixpanel object. Calls to Mixpanel +People methods will look like this:

+ +
+[mixpanel.people increment:@"App Opens" by:[NSNumber numberWithInt:1]];
+
+ + +

Please note that the core Mixpanel and +MixpanelPeople classes share the identify: method. +The Mixpanel identify: affects the +distinct_id property of events sent by track: and +track:properties: and determines which Mixpanel People user +record will be updated by set:, increment: and other +MixpanelPeople methods.

+ +

If you are going to set your own distinct IDs for core Mixpanel event +tracking, make sure to use the same distinct IDs when using Mixpanel +People.

+
+ + + + + +
+ + + + + + +
+
+ +

  ignoreTime +

+ +
+
+ +
+ + +
+

controls the $ignore_time property in any subsequent MixpanelPeople operation.

+
+ + + +
@property (atomic) BOOL ignoreTime
+ + + + + + + + + +
+

Discussion

+

If the $ignore_time property is present and true in your request, +Mixpanel will not automatically update the “Last Seen” property of the profile. +Otherwise, Mixpanel will add a “Last Seen” property associated with the +current time for all $set, $append, and $add operations

+ +

Defaults to NO.

+
+ + + + + + + +
+

Declared In

+

MixpanelPeople.h

+
+ + +
+
+
+ +

– set: +

+ +
+
+ +
+ + +
+

Set properties on the current user in Mixpanel People.

+
+ + + +
- (void)set:(NSDictionary *)properties
+ + + +
+

Parameters

+ + + + + + + +
properties

properties dictionary

+
+ + + + + + + +
+

Discussion

+

The properties will be set on the current user. The keys must be NSString +objects and the values should be NSString, NSNumber, NSArray, NSDate, or +NSNull objects. We use an NSAssert to enforce this type requirement. In +release mode, the assert is stripped out and we will silently convert +incorrect types to strings using [NSString stringWithFormat:@“%@”, value]. You +can override the default the current project token and distinct ID by +including the special properties: $token and $distinct_id. If the existing +user record on the server already has a value for a given property, the old +value is overwritten. Other existing properties will not be affected.

+ +
+// applies to both Mixpanel Engagement track: AND Mixpanel People set: and
+// increment: calls
+[mixpanel identify:distinctId];
+
+ +
+ + + + + + + +
+

Declared In

+

MixpanelPeople.h

+
+ + +
+
+
+ +

– set:to: +

+ +
+
+ +
+ + +
+

Convenience method for setting a single property in Mixpanel People.

+
+ + + +
- (void)set:(NSString *)property to:(id)object
+ + + +
+

Parameters

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

property name

object

property value

+
+ + + + + + + +
+

Discussion

+

Property keys must be NSString objects and values must be +NSString, NSNumber, NSNull, +NSArray, NSDictionary, NSDate or +NSURL objects.

+
+ + + + + + + +
+

Declared In

+

MixpanelPeople.h

+
+ + +
+
+
+ +

– setOnce: +

+ +
+
+ +
+ + +
+

Set properties on the current user in Mixpanel People, but don’t overwrite if +there is an existing value.

+
+ + + +
- (void)setOnce:(NSDictionary *)properties
+ + + +
+

Parameters

+ + + + + + + +
properties

properties dictionary

+
+ + + + + + + +
+

Discussion

+

This method is identical to set: except it will only set +properties that are not already set. It is particularly useful for collecting +data about the user’s initial experience and source, as well as dates +representing the first time something happened.

+
+ + + + + + + +
+

Declared In

+

MixpanelPeople.h

+
+ + +
+
+
+ +

– unset: +

+ +
+
+ +
+ + +
+

Remove a list of properties and their values from the current user’s profile +in Mixpanel People.

+
+ + + +
- (void)unset:(NSArray *)properties
+ + + +
+

Parameters

+ + + + + + + +
properties

properties array

+
+ + + + + + + +
+

Discussion

+

The properties array must ony contain NSString names of properties. For properties +that don’t exist there will be no effect.

+
+ + + + + + + +
+

Declared In

+

MixpanelPeople.h

+
+ + +
+
+
+ +

– increment: +

+ +
+
+ +
+ + +
+

Increment the given numeric properties by the given values.

+
+ + + +
- (void)increment:(NSDictionary *)properties
+ + + +
+

Parameters

+ + + + + + + +
properties

properties dictionary

+
+ + + + + + + +
+

Discussion

+

Property keys must be NSString names of numeric properties. A property is +numeric if its current value is a number. If a property does not exist, it +will be set to the increment amount. Property values must be NSNumber objects.

+
+ + + + + + + +
+

Declared In

+

MixpanelPeople.h

+
+ + +
+
+
+ +

– increment:by: +

+ +
+
+ +
+ + +
+

Convenience method for incrementing a single numeric property by the specified +amount.

+
+ + + +
- (void)increment:(NSString *)property by:(NSNumber *)amount
+ + + +
+

Parameters

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

property name

amount

amount to increment by

+
+ + + + + + + + + + + + + +
+

Declared In

+

MixpanelPeople.h

+
+ + +
+
+
+ +

– append: +

+ +
+
+ +
+ + +
+

Append values to list properties.

+
+ + + +
- (void)append:(NSDictionary *)properties
+ + + +
+

Parameters

+ + + + + + + +
properties

mapping of list property names to values to append

+
+ + + + + + + +
+

Discussion

+

Property keys must be NSString objects and values must be +NSString, NSNumber, NSNull, +NSArray, NSDictionary, NSDate or +NSURL objects.

+
+ + + + + + + +
+

Declared In

+

MixpanelPeople.h

+
+ + +
+
+
+ +

– union: +

+ +
+
+ +
+ + +
+

Union list properties.

+
+ + + +
- (void)union:(NSDictionary *)properties
+ + + +
+

Parameters

+ + + + + + + +
properties

mapping of list property names to lists to union

+
+ + + + + + + +
+

Discussion

+

Property keys must be NSString objects.

+
+ + + + + + + +
+

Declared In

+

MixpanelPeople.h

+
+ + +
+
+
+ +

– remove: +

+ +
+
+ +
+ + +
+

Remove list properties.

+
+ + + +
- (void)remove:(NSDictionary *)properties
+ + + +
+

Parameters

+ + + + + + + +
properties

mapping of list property names to values to remove

+
+ + + + + + + +
+

Discussion

+

Property keys must be NSString objects and values must be +NSString, NSNumber, NSNull, +NSArray, NSDictionary, NSDate or +NSURL objects.

+
+ + + + + + + +
+

Declared In

+

MixpanelPeople.h

+
+ + +
+
+
+ +

– trackCharge: +

+ +
+
+ +
+ + +
+

Track money spent by the current user for revenue analytics.

+
+ + + +
- (void)trackCharge:(NSNumber *)amount
+ + + +
+

Parameters

+ + + + + + + +
amount

amount of revenue received

+
+ + + + + + + + + + + + + +
+

Declared In

+

MixpanelPeople.h

+
+ + +
+
+
+ +

– trackCharge:withProperties: +

+ +
+
+ +
+ + +
+

Track money spent by the current user for revenue analytics and associate +properties with the charge.

+
+ + + +
- (void)trackCharge:(NSNumber *)amount withProperties:(nullable NSDictionary *)properties
+ + + + + + + + + +
+

Discussion

+

Charge properties allow you segment on types of revenue. For instance, you +could record a product ID with each charge so that you could segment on it in +revenue analytics to see which products are generating the most revenue.

+
+ + + + + + + +
+

Declared In

+

MixpanelPeople.h

+
+ + +
+
+
+ +

– clearCharges +

+ +
+
+ +
+ + +
+

Delete current user’s revenue history.

+
+ + + +
- (void)clearCharges
+ + + + + + + + + + + + + + + +
+

Declared In

+

MixpanelPeople.h

+
+ + +
+
+
+ +

– deleteUser +

+ +
+
+ +
+ + +
+

Delete current user’s record from Mixpanel People.

+
+ + + +
- (void)deleteUser
+ + + + + + + + + + + + + + + +
+

Declared In

+

MixpanelPeople.h

+
+ + +
+
+
+
+ +
+ + + + + + +
+ + +
+
+
+ + + + \ No newline at end of file diff --git a/docs/Protocols/MixpanelDelegate.html b/docs/Protocols/MixpanelDelegate.html new file mode 100644 index 000000000..493f25f5e --- /dev/null +++ b/docs/Protocols/MixpanelDelegate.html @@ -0,0 +1,207 @@ + + + + + + MixpanelDelegate Protocol Reference + + + + + + +
+
+ +

+ mixpanel-iphone +

+ +

+ Mixpanel +

+ +
+
+ + + +
+
+
+
+

MixpanelDelegate Protocol Reference

+ + +
+ + + + + + + +
Conforms toNSObject
Declared inMixpanel.h
+ + + + +
+ +

Overview

+

@protocol

+ +

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

+ +

Creating a delegate for the Mixpanel object is entirely optional. It is only +necessary when you want full control over when data is uploaded to the server, +beyond simply calling stop: and start: before and after a particular block of +your code.

+
+ + + + + +
+ + + + + + +
+
+ +

– mixpanelWillFlush: +

+ +
+
+ +
+ + +
+

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

+
+ + + +
- (BOOL)mixpanelWillFlush:(Mixpanel *)mixpanel
+ + + +
+

Parameters

+ + + + + + + +
mixpanel

Mixpanel API instance

+
+ + + + + + + +
+

Discussion

+

Return YES to upload now, NO to defer until later.

+
+ + + + + + + +
+

Declared In

+

Mixpanel.h

+
+ + +
+
+
+
+ +
+ + + + + + +
+ + +
+
+
+ + + + \ No newline at end of file diff --git a/docs/css/scss/_index.scss b/docs/css/scss/_index.scss new file mode 100644 index 000000000..6a57ec5dc --- /dev/null +++ b/docs/css/scss/_index.scss @@ -0,0 +1,17 @@ +.index-container { + -webkit-flex-direction: column; + flex-direction: column; + + @media (min-width: $desktop-min-width) { + display: flex; + -webkit-flex-direction: row; + flex-direction: row; + -webkit-flex-wrap: wrap; + flex-wrap: wrap; + } + + .index-column { + -webkit-flex: 1 1 33%; + flex: 1 1 33%; + } +} diff --git a/docs/css/scss/_layout.scss b/docs/css/scss/_layout.scss new file mode 100644 index 000000000..da46aef07 --- /dev/null +++ b/docs/css/scss/_layout.scss @@ -0,0 +1,302 @@ +* { + box-sizing: border-box; +} + +.clear { + clear: both; +} + +.clearfix { + &:before, &:after { + clear: both; + display: table; + content: ""; + } +} + +.xcode .hide-in-xcode { + display: none; +} + +body { + font: 62.5% $body-font; + background: $body-background; + + @media (max-width: $mobile-max-width) { + background-color: $content-background; + } +} + +h1, h2, h3 { + font-weight: 300; + color: #808080; +} + +h1 { + font-size: 2em; + color: #000; +} + +h4 { + font-size: 13px; + line-height: 1.5; + margin: 21px 0 0 0; +} + +a { + color: $tint-color; + text-decoration: none; +} + +pre, code { + font-family: $code-font; + word-wrap: break-word; +} + +pre > code, .method-declaration code { + display: inline-block; + font-size: .85em; + padding: 4px 0 4px 10px; + border-left: 5px solid rgba(0, 155, 51, .2); + + &:before { + content: "Objective-C"; + display: block; + + font: 9px/1 $body-font; + color: #009b33; + text-transform: uppercase; + letter-spacing: 2px; + padding-bottom: 6px; + } +} + +pre > code { + font-size: inherit; +} + +table, th, td { + border: 1px solid #e9e9e9; +} + +table { + width: 100%; +} + +th, td { + padding: 7px; + + > :first-child { + margin-top: 0; + } + + > :last-child { + margin-bottom: 0; + } +} + +.container { + @extend .clearfix; + + max-width: 980px; + padding: 0 10px; + margin: 0 auto; + + @media (max-width: $mobile-max-width) { + padding: 0; + } +} + +header { + position: fixed; + top: 0; + left: 0; + width: 100%; + z-index: 2; + + background: #414141; + color: #fff; + font-size: 1.1em; + line-height: 25px; + letter-spacing: .05em; + + #library-title { + float: left; + } + + #developer-home { + float: right; + } + + h1 { + font-size: inherit; + font-weight: inherit; + margin: 0; + } + + p { + margin: 0; + } + + h1, a { + color: inherit; + } + + @media (max-width: $mobile-max-width) { + .container { + padding: 0 10px; + } + } +} + +aside { + position: fixed; + top: 25px; + left: 0; + width: 100%; + height: 25px; + z-index: 2; + + font-size: 1.1em; + + #header-buttons { + background: rgba(255, 255, 255, .8); + margin: 0 1px; + padding: 0; + list-style: none; + text-align: right; + line-height: 32px; + + li { + display: inline-block; + cursor: pointer; + padding: 0 10px; + } + + label, select { + cursor: inherit; + } + + #on-this-page { + position: relative; + + .chevron { + display: inline-block; + width: 14px; + height: 4px; + position: relative; + + .chevy { + background: #878787; + height: 2px; + position: absolute; + width: 10px; + + &.chevron-left { + left: 0; + transform: rotateZ(45deg) scale(0.6); + } + + &.chevron-right { + right: 0; + transform: rotateZ(-45deg) scale(0.6); + } + } + } + + #jump-to { + opacity: 0; + font-size: 16px; + + position: absolute; + top: 5px; + left: 0; + width: 100%; + height: 100%; + } + } + } +} + +article { + margin-top: 25px; + + #content { + @extend .clearfix; + + background: $content-background; + border: 1px solid $content-border; + padding: 15px 25px 30px 25px; + + font-size: 1.4em; + line-height: 1.45; + + position: relative; + + @media (max-width: $mobile-max-width) { + padding: 15px 10px 20px 10px; + border: none; + } + + .navigation-top { + position: absolute; + top: 15px; + right: 25px; + } + + .title { + margin: 21px 0 0 0; + padding: 15px 0; + } + + p { + color: #414141; + margin: 0 0 15px 0; + } + + th, td { + p:last-child { + margin-bottom: 0; + } + } + + main { + ul { + list-style: none; + margin-left: 24px; + margin-bottom: 12px; + padding: 0; + + li { + position: relative; + padding-left: 1.3em; + + &:before { + content: "\02022"; + + color: #414141; + font-size: 1.08em; + line-height: 1; + + position: absolute; + left: 0; + padding-top: 2px; + } + } + } + } + + footer { + @extend .clearfix; + + .footer-copyright { + margin: 70px 25px 10px 0; + } + + p { + font-size: .71em; + color: #a0a0a0; + } + } + } +} diff --git a/docs/css/scss/_normalize.scss b/docs/css/scss/_normalize.scss new file mode 100644 index 000000000..9b8848a5c --- /dev/null +++ b/docs/css/scss/_normalize.scss @@ -0,0 +1,581 @@ +/* ========================================================================== + Normalize.scss settings + ========================================================================== */ +/** + * Includes legacy browser support IE6/7 + * + * Set to false if you want to drop support for IE6 and IE7 + */ + +$legacy_browser_support: false !default; + +/* Base + ========================================================================== */ + +/** + * 1. Set default font family to sans-serif. + * 2. Prevent iOS text size adjust after orientation change, without disabling + * user zoom. + * 3. Corrects text resizing oddly in IE 6/7 when body `font-size` is set using + * `em` units. + */ + +html { + font-family: sans-serif; /* 1 */ + -ms-text-size-adjust: 100%; /* 2 */ + -webkit-text-size-adjust: 100%; /* 2 */ + @if $legacy_browser_support { + *font-size: 100%; /* 3 */ + } +} + +/** + * Remove default margin. + */ + +body { + margin: 0; +} + +/* HTML5 display definitions + ========================================================================== */ + +/** + * Correct `block` display not defined for any HTML5 element in IE 8/9. + * Correct `block` display not defined for `details` or `summary` in IE 10/11 + * and Firefox. + * Correct `block` display not defined for `main` in IE 11. + */ + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +menu, +nav, +section, +summary { + display: block; +} + +/** + * 1. Correct `inline-block` display not defined in IE 6/7/8/9 and Firefox 3. + * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. + */ + +audio, +canvas, +progress, +video { + display: inline-block; /* 1 */ + vertical-align: baseline; /* 2 */ + @if $legacy_browser_support { + *display: inline; + *zoom: 1; + } +} + +/** + * Prevents modern browsers from displaying `audio` without controls. + * Remove excess height in iOS 5 devices. + */ + +audio:not([controls]) { + display: none; + height: 0; +} + +/** + * Address `[hidden]` styling not present in IE 8/9/10. + * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22. + */ + +[hidden], +template { + display: none; +} + +/* Links + ========================================================================== */ + +/** + * Remove the gray background color from active links in IE 10. + */ + +a { + background-color: transparent; +} + +/** + * Improve readability when focused and also mouse hovered in all browsers. + */ + +a { + &:active, &:hover { + outline: 0; + }; +} + +/* Text-level semantics + ========================================================================== */ + +/** + * Address styling not present in IE 8/9/10/11, Safari, and Chrome. + */ + +abbr[title] { + border-bottom: 1px dotted; +} + +/** + * Address style set to `bolder` in Firefox 4+, Safari, and Chrome. + */ + +b, +strong { + font-weight: bold; +} + +@if $legacy_browser_support { + blockquote { + margin: 1em 40px; + } +} + +/** + * Address styling not present in Safari and Chrome. + */ + +dfn { + font-style: italic; +} + +/** + * Address variable `h1` font-size and margin within `section` and `article` + * contexts in Firefox 4+, Safari, and Chrome. + */ + +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +@if $legacy_browser_support { + h2 { + font-size: 1.5em; + margin: 0.83em 0; + } + + h3 { + font-size: 1.17em; + margin: 1em 0; + } + + h4 { + font-size: 1em; + margin: 1.33em 0; + } + + h5 { + font-size: 0.83em; + margin: 1.67em 0; + } + + h6 { + font-size: 0.67em; + margin: 2.33em 0; + } +} + +/** + * Addresses styling not present in IE 8/9. + */ + +mark { + background: #ff0; + color: #000; +} + +@if $legacy_browser_support { + + /** + * Addresses margins set differently in IE 6/7. + */ + + p, + pre { + *margin: 1em 0; + } + + /* + * Addresses CSS quotes not supported in IE 6/7. + */ + + q { + *quotes: none; + } + + /* + * Addresses `quotes` property not supported in Safari 4. + */ + + q:before, + q:after { + content: ''; + content: none; + } +} + +/** + * Address inconsistent and variable font size in all browsers. + */ + +small { + font-size: 80%; +} + +/** + * Prevent `sub` and `sup` affecting `line-height` in all browsers. + */ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +@if $legacy_browser_support { + + /* ========================================================================== + Lists + ========================================================================== */ + + /* + * Addresses margins set differently in IE 6/7. + */ + + dl, + menu, + ol, + ul { + *margin: 1em 0; + } + + dd { + *margin: 0 0 0 40px; + } + + /* + * Addresses paddings set differently in IE 6/7. + */ + + menu, + ol, + ul { + *padding: 0 0 0 40px; + } + + /* + * Corrects list images handled incorrectly in IE 7. + */ + + nav ul, + nav ol { + *list-style: none; + *list-style-image: none; + } + +} + +/* Embedded content + ========================================================================== */ + +/** + * 1. Remove border when inside `a` element in IE 8/9/10. + * 2. Improves image quality when scaled in IE 7. + */ + +img { + border: 0; + @if $legacy_browser_support { + *-ms-interpolation-mode: bicubic; /* 2 */ + } +} + +/** + * Correct overflow not hidden in IE 9/10/11. + */ + +svg:not(:root) { + overflow: hidden; +} + +/* Grouping content + ========================================================================== */ + +/** + * Address margin not present in IE 8/9 and Safari. + */ + +figure { + margin: 1em 40px; +} + +/** + * Address differences between Firefox and other browsers. + */ + +hr { + -moz-box-sizing: content-box; + box-sizing: content-box; + height: 0; +} + +/** + * Contain overflow in all browsers. + */ + +pre { + overflow: auto; +} + +/** + * Address odd `em`-unit font size rendering in all browsers. + * Correct font family set oddly in IE 6, Safari 4/5, and Chrome. + */ + +code, +kbd, +pre, +samp { + font-family: monospace, monospace; + @if $legacy_browser_support { + _font-family: 'courier new', monospace; + } + font-size: 1em; +} + +/* Forms + ========================================================================== */ + +/** + * Known limitation: by default, Chrome and Safari on OS X allow very limited + * styling of `select`, unless a `border` property is set. + */ + +/** + * 1. Correct color not being inherited. + * Known issue: affects color of disabled elements. + * 2. Correct font properties not being inherited. + * 3. Address margins set differently in Firefox 4+, Safari, and Chrome. + * 4. Improves appearance and consistency in all browsers. + */ + +button, +input, +optgroup, +select, +textarea { + color: inherit; /* 1 */ + font: inherit; /* 2 */ + margin: 0; /* 3 */ + @if $legacy_browser_support { + vertical-align: baseline; /* 3 */ + *vertical-align: middle; /* 3 */ + } +} + +/** + * Address `overflow` set to `hidden` in IE 8/9/10/11. + */ + +button { + overflow: visible; +} + +/** + * Address inconsistent `text-transform` inheritance for `button` and `select`. + * All other form control elements do not inherit `text-transform` values. + * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. + * Correct `select` style inheritance in Firefox. + */ + +button, +select { + text-transform: none; +} + +/** + * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` + * and `video` controls. + * 2. Correct inability to style clickable `input` types in iOS. + * 3. Improve usability and consistency of cursor style between image-type + * `input` and others. + * 4. Removes inner spacing in IE 7 without affecting normal text inputs. + * Known issue: inner spacing remains in IE 6. + */ + +button, +html input[type="button"], /* 1 */ +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; /* 2 */ + cursor: pointer; /* 3 */ + @if $legacy_browser_support { + *overflow: visible; /* 4 */ + } +} + +/** + * Re-set default cursor for disabled elements. + */ + +button[disabled], +html input[disabled] { + cursor: default; +} + +/** + * Remove inner padding and border in Firefox 4+. + */ + +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0; +} + +/** + * Address Firefox 4+ setting `line-height` on `input` using `!important` in + * the UA stylesheet. + */ + +input { + line-height: normal; +} + +/** + * 1. Address box sizing set to `content-box` in IE 8/9/10. + * 2. Remove excess padding in IE 8/9/10. + * Known issue: excess padding remains in IE 6. + */ + +input[type="checkbox"], +input[type="radio"] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ + @if $legacy_browser_support { + *height: 13px; /* 3 */ + *width: 13px; /* 3 */ + } +} + +/** + * Fix the cursor style for Chrome's increment/decrement buttons. For certain + * `font-size` values of the `input`, it causes the cursor style of the + * decrement button to change from `default` to `text`. + */ + +input[type="number"]::-webkit-inner-spin-button, +input[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +/** + * 1. Address `appearance` set to `searchfield` in Safari and Chrome. + * 2. Address `box-sizing` set to `border-box` in Safari and Chrome + * (include `-moz` to future-proof). + */ + +input[type="search"] { + -webkit-appearance: textfield; /* 1 */ + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; /* 2 */ + box-sizing: content-box; +} + +/** + * Remove inner padding and search cancel button in Safari and Chrome on OS X. + * Safari (but not Chrome) clips the cancel button when the search input has + * padding (and `textfield` appearance). + */ + +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +/** + * Define consistent border, margin, and padding. + */ + +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; +} + +/** + * 1. Correct `color` not being inherited in IE 8/9/10/11. + * 2. Remove padding so people aren't caught out if they zero out fieldsets. + * 3. Corrects text not wrapping in Firefox 3. + * 4. Corrects alignment displayed oddly in IE 6/7. + */ + +legend { + border: 0; /* 1 */ + padding: 0; /* 2 */ + @if $legacy_browser_support { + white-space: normal; /* 3 */ + *margin-left: -7px; /* 4 */ + } +} + +/** + * Remove default vertical scrollbar in IE 8/9/10/11. + */ + +textarea { + overflow: auto; +} + +/** + * Don't inherit the `font-weight` (applied by a rule above). + * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. + */ + +optgroup { + font-weight: bold; +} + +/* Tables + ========================================================================== */ + +/** + * Remove most spacing between table cells. + */ + +table { + border-collapse: collapse; + border-spacing: 0; +} + +td, +th { + padding: 0; +} diff --git a/docs/css/scss/_object.scss b/docs/css/scss/_object.scss new file mode 100644 index 000000000..22eebd87d --- /dev/null +++ b/docs/css/scss/_object.scss @@ -0,0 +1,89 @@ +.section-specification { + table { + width: auto; + + th { + text-align: left; + } + } +} + +.method-title { + margin-left: -15px; + margin-bottom: 8px; + transition: margin-left .3s ease-out; + + .section-method.hide & { + margin-left: 0; + } + + code { + font-weight: 400; + font-size: .85em; + } +} + +.method-info { + background: $object-background; + border-bottom: 1px solid $object-border; + margin: 0 -25px; + padding: 20px 25px 0 25px; + transition: height .3s ease-out; + + position: relative; + + .pointy-thing { + background: $content-background; + height: 10px; + border-bottom: 1px solid $object-border; + margin: -20px -25px 16px -25px; + + &:before { + display: inline-block; + content: ""; + + background: $object-background; + border: 1px solid $object-border; + border-bottom: 0; + border-right: 0; + + position: absolute; + left: 21px; + top: 3px; + width: 12px; + height: 12px; + transform: rotate(45deg); + } + } + + .method-subsection { + margin-bottom: 15px; + + .argument-name { + width: 1px; + text-align: right; + + code { + color: #808080; + font-style: italic; + font-weight: 400; + } + } + } +} + +.section-method { + &.hide .method-info { + height: 0 !important; + overflow: hidden; + display: none; + } + + &.hide.animating .method-info { + display: block; + } + + &.animating .method-info { + overflow: hidden; + } +} diff --git a/docs/css/scss/_print.scss b/docs/css/scss/_print.scss new file mode 100644 index 000000000..61bdf99f8 --- /dev/null +++ b/docs/css/scss/_print.scss @@ -0,0 +1,42 @@ +@media print { + body { + background: #fff; + padding: 8px; + } + + header { + position: static; + background: #fff; + color: #000; + } + + aside { + display: none; + } + + .container { + max-width: none; + padding: 0; + } + + article { + margin-top: 0; + + #content { + border: 0; + background: #fff; + padding: 15px 0 0 0; + + .title { + margin-top: 0; + padding-top: 0; + } + } + } + + .method-info { + &, & .pointy-thing { + background: #fff; + } + } +} diff --git a/docs/css/scss/_variables.scss b/docs/css/scss/_variables.scss new file mode 100644 index 000000000..38e072d31 --- /dev/null +++ b/docs/css/scss/_variables.scss @@ -0,0 +1,12 @@ +$body-font: -apple-system-font, "Helvetica Neue", Helvetica, sans-serif; +$code-font: "Source Code Pro", Monaco, Menlo, Consolas, monospace; + +$body-background: #f2f2f2; +$content-background: #fff; +$content-border: #e9e9e9; +$tint-color: #08c; +$object-background: #f9f9f9; +$object-border: #e9e9e9; + +$mobile-max-width: 650px; +$desktop-min-width: 768px; \ No newline at end of file diff --git a/docs/css/scss/_xcode.scss b/docs/css/scss/_xcode.scss new file mode 100644 index 000000000..340b1f6b8 --- /dev/null +++ b/docs/css/scss/_xcode.scss @@ -0,0 +1,29 @@ +.xcode { + header, aside { + display: none; + } + + .container { + padding: 0; + } + + article { + margin-top: 0; + + #content { + border: 0; + margin: 0; + } + } + + .method-info { + &, .section-method.hide & { + max-height: auto; + overflow: visible; + + &.hiding { + display: block; + } + } + } +} diff --git a/docs/css/scss/style.scss b/docs/css/scss/style.scss new file mode 100644 index 000000000..648a6086b --- /dev/null +++ b/docs/css/scss/style.scss @@ -0,0 +1 @@ +@import "variables", "normalize", "layout", "index", "object", "print", "xcode"; diff --git a/docs/css/style.css b/docs/css/style.css new file mode 100644 index 000000000..d9d59dd08 --- /dev/null +++ b/docs/css/style.css @@ -0,0 +1,2 @@ +html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}*{box-sizing:border-box}.clear{clear:both}.clearfix:before,.container:before,article #content:before,article #content footer:before,.clearfix:after,.container:after,article #content:after,article #content footer:after{clear:both;display:table;content:""}.xcode .hide-in-xcode{display:none}body{font:62.5% -apple-system-font,"Helvetica Neue",Helvetica,sans-serif;background:#f2f2f2}@media (max-width: 650px){body{background-color:#fff}}h1,h2,h3{font-weight:300;color:#808080}h1{font-size:2em;color:#000}h4{font-size:13px;line-height:1.5;margin:21px 0 0 0}a{color:#08c;text-decoration:none}pre,code{font-family:"Source Code Pro",Monaco,Menlo,Consolas,monospace;word-wrap:break-word}pre>code,.method-declaration code{display:inline-block;font-size:.85em;padding:4px 0 4px 10px;border-left:5px solid rgba(0,155,51,0.2)}pre>code:before,.method-declaration code:before{content:"Objective-C";display:block;font:9px/1 -apple-system-font,"Helvetica Neue",Helvetica,sans-serif;color:#009b33;text-transform:uppercase;letter-spacing:2px;padding-bottom:6px}pre>code{font-size:inherit}table,th,td{border:1px solid #e9e9e9}table{width:100%}th,td{padding:7px}th>:first-child,td>:first-child{margin-top:0}th>:last-child,td>:last-child{margin-bottom:0}.container{max-width:980px;padding:0 10px;margin:0 auto}@media (max-width: 650px){.container{padding:0}}header{position:fixed;top:0;left:0;width:100%;z-index:2;background:#414141;color:#fff;font-size:1.1em;line-height:25px;letter-spacing:.05em}header #library-title{float:left}header #developer-home{float:right}header h1{font-size:inherit;font-weight:inherit;margin:0}header p{margin:0}header h1,header a{color:inherit}@media (max-width: 650px){header .container{padding:0 10px}}aside{position:fixed;top:25px;left:0;width:100%;height:25px;z-index:2;font-size:1.1em}aside #header-buttons{background:rgba(255,255,255,0.8);margin:0 1px;padding:0;list-style:none;text-align:right;line-height:32px}aside #header-buttons li{display:inline-block;cursor:pointer;padding:0 10px}aside #header-buttons label,aside #header-buttons select{cursor:inherit}aside #header-buttons #on-this-page{position:relative}aside #header-buttons #on-this-page .chevron{display:inline-block;width:14px;height:4px;position:relative}aside #header-buttons #on-this-page .chevron .chevy{background:#878787;height:2px;position:absolute;width:10px}aside #header-buttons #on-this-page .chevron .chevy.chevron-left{left:0;transform:rotateZ(45deg) scale(0.6)}aside #header-buttons #on-this-page .chevron .chevy.chevron-right{right:0;transform:rotateZ(-45deg) scale(0.6)}aside #header-buttons #on-this-page #jump-to{opacity:0;font-size:16px;position:absolute;top:5px;left:0;width:100%;height:100%}article{margin-top:25px}article #content{background:#fff;border:1px solid #e9e9e9;padding:15px 25px 30px 25px;font-size:1.4em;line-height:1.45;position:relative}@media (max-width: 650px){article #content{padding:15px 10px 20px 10px;border:none}}article #content .navigation-top{position:absolute;top:15px;right:25px}article #content .title{margin:21px 0 0 0;padding:15px 0}article #content p{color:#414141;margin:0 0 15px 0}article #content th p:last-child,article #content td p:last-child{margin-bottom:0}article #content main ul{list-style:none;margin-left:24px;margin-bottom:12px;padding:0}article #content main ul li{position:relative;padding-left:1.3em}article #content main ul li:before{content:"\02022";color:#414141;font-size:1.08em;line-height:1;position:absolute;left:0;padding-top:2px}article #content footer .footer-copyright{margin:70px 25px 10px 0}article #content footer p{font-size:.71em;color:#a0a0a0}.index-container{-webkit-flex-direction:column;flex-direction:column}@media (min-width: 768px){.index-container{display:flex;-webkit-flex-direction:row;flex-direction:row;-webkit-flex-wrap:wrap;flex-wrap:wrap}}.index-container .index-column{-webkit-flex:1 1 33%;flex:1 1 33%}.section-specification table{width:auto}.section-specification table th{text-align:left}.method-title{margin-left:-15px;margin-bottom:8px;transition:margin-left .3s ease-out}.section-method.hide .method-title{margin-left:0}.method-title code{font-weight:400;font-size:.85em}.method-info{background:#f9f9f9;border-bottom:1px solid #e9e9e9;margin:0 -25px;padding:20px 25px 0 25px;transition:height .3s ease-out;position:relative}.method-info .pointy-thing{background:#fff;height:10px;border-bottom:1px solid #e9e9e9;margin:-20px -25px 16px -25px}.method-info .pointy-thing:before{display:inline-block;content:"";background:#f9f9f9;border:1px solid #e9e9e9;border-bottom:0;border-right:0;position:absolute;left:21px;top:3px;width:12px;height:12px;-webkit-transform:rotate(45deg);transform:rotate(45deg) }.method-info .method-subsection{margin-bottom:15px}.method-info .method-subsection .argument-name{width:1px;text-align:right}.method-info .method-subsection .argument-name code{color:#808080;font-style:italic;font-weight:400}.section-method.hide .method-info{height:0 !important;overflow:hidden;display:none}.section-method.hide.animating .method-info{display:block}.section-method.animating .method-info{overflow:hidden}@media print{body{background:#fff;padding:8px}header{position:static;background:#fff;color:#000}aside{display:none}.container{max-width:none;padding:0}article{margin-top:0}article #content{border:0;background:#fff;padding:15px 0 0 0}article #content .title{margin-top:0;padding-top:0}.method-info,.method-info .pointy-thing{background:#fff}}.xcode header,.xcode aside{display:none}.xcode .container{padding:0}.xcode article{margin-top:0}.xcode article #content{border:0;margin:0}.xcode .method-info,.section-method.hide .xcode .method-info{max-height:auto;overflow:visible}.xcode .method-info.hiding,.section-method.hide .xcode .method-info.hiding{display:block} + diff --git a/docs/hierarchy.html b/docs/hierarchy.html new file mode 100644 index 000000000..681daa250 --- /dev/null +++ b/docs/hierarchy.html @@ -0,0 +1,98 @@ + + + + + + mixpanel-iphone Hierarchy + + + + + + +
+
+ +

+ mixpanel-iphone +

+ +

+ Mixpanel +

+ +
+
+ + + +
+
+
+
+

mixpanel-iphone Hierarchy

+ + +
+

Class Hierarchy

+ + + +
+ + + +
+ +

Protocol References

+ + + + +
+ + + +
+
+
+
+ + + + \ No newline at end of file diff --git a/docs/img/button_bar_background.png b/docs/img/button_bar_background.png new file mode 100644 index 000000000..71d1019bc Binary files /dev/null and b/docs/img/button_bar_background.png differ diff --git a/docs/img/disclosure.png b/docs/img/disclosure.png new file mode 100644 index 000000000..4c5cbf445 Binary files /dev/null and b/docs/img/disclosure.png differ diff --git a/docs/img/disclosure_open.png b/docs/img/disclosure_open.png new file mode 100644 index 000000000..82396fed2 Binary files /dev/null and b/docs/img/disclosure_open.png differ diff --git a/docs/img/library_background.png b/docs/img/library_background.png new file mode 100644 index 000000000..3006248af Binary files /dev/null and b/docs/img/library_background.png differ diff --git a/docs/img/title_background.png b/docs/img/title_background.png new file mode 100644 index 000000000..846e4968d Binary files /dev/null and b/docs/img/title_background.png differ diff --git a/docs/index.html b/docs/index.html new file mode 100644 index 000000000..6889e752b --- /dev/null +++ b/docs/index.html @@ -0,0 +1,98 @@ + + + + + + mixpanel-iphone Reference + + + + + + +
+
+ +

+ mixpanel-iphone +

+ +

+ Mixpanel +

+ +
+
+ + + +
+
+
+
+

mixpanel-iphone Reference

+ + + +
+ + + +
+

Class References

+ +
+ + + +
+ +

Protocol References

+ + + + + + +
+ +
+ + +
+
+
+
+ + + + \ No newline at end of file diff --git a/docs/js/script.js b/docs/js/script.js new file mode 100644 index 000000000..4074361c4 --- /dev/null +++ b/docs/js/script.js @@ -0,0 +1,59 @@ +function $() { + return document.querySelector.apply(document, arguments); +} + +if (navigator.userAgent.indexOf("Xcode") != -1) { + document.documentElement.classList.add("xcode"); +} + +var jumpTo = $("#jump-to"); + +if (jumpTo) { + jumpTo.addEventListener("change", function(e) { + location.hash = this.options[this.selectedIndex].value; + }); +} + +function hashChanged() { + if (/^#\/\/api\//.test(location.hash)) { + var element = document.querySelector("a[name='" + location.hash.substring(1) + "']"); + + if (!element) { + return; + } + + element = element.parentNode; + + element.classList.remove("hide"); + fixScrollPosition(element); + } +} + +function fixScrollPosition(element) { + var scrollTop = element.offsetTop - 150; + document.documentElement.scrollTop = scrollTop; + document.body.scrollTop = scrollTop; +} + +[].forEach.call(document.querySelectorAll(".section-method"), function(element) { + element.classList.add("hide"); + + element.querySelector(".method-title a").addEventListener("click", function(e) { + var info = element.querySelector(".method-info"), + infoContainer = element.querySelector(".method-info-container"); + + element.classList.add("animating"); + info.style.height = (infoContainer.clientHeight + 40) + "px"; + fixScrollPosition(element); + element.classList.toggle("hide"); + if (element.classList.contains("hide")) { + e.preventDefault(); + } + setTimeout(function() { + element.classList.remove("animating"); + }, 300); + }); +}); + +window.addEventListener("hashchange", hashChanged); +hashChanged();