Mixpanel UUID Retrieving - ios

I have to retrieve UUID of user from mix panel, The expected scenario, need to append inviter UUID to their invited user events.
And how to perform increment feature for people properties in mix panel?

Mixpanel's unique identifier is called distinct_id.User can be identified by its Unique identifier as well using "distinctId" property you can retrieve user's identifier.
Mixpanel *mixpanel = [Mixpanel sharedInstanceWithToken:#"Token"];
[mixpanel identify:mixpanel.distinctId];
Same way we can access .distinctId property to retrive user details.
People property increments with no of people follow the same event.
[mixpanel.people increment:#"Event Name" by:[NSNumber numberWithInt:1]];

Related

Where to set User Properties in iOS for Firebase Analytics?

I have several user types:
Type A, Type B, Type C
User has to chose its type at time of sign up and it gets fixed for a particular user.
A user cannot change its type. How can I set User property so that a particular event can be filters using User Type?
Suppose event is logged by name : example_event
I want to check that how many users of type A triggers example_event?
Go to UserProperty tab in Firebase console of your project. Click NEW USER PROPERTY.
Enter a name and description for the user property, then click CREATE.
Let's suppose you have set USER_TYPE as Firebase property .
Now you can fire this property using below code .
Analytics.setUserProperty(USER_TYPE, forName: "A/B/C")
It will take some time to reflect on your Events tab of your Firebase project console.

How to make group of User Defaults in swift?

I want to store group of data into user defaults so that deleting that group deletes all the data in it. For example i want to store login related data in USER_DEFAULTS_LOGIN and all subscription related data in USER_DEFAULTS_SUBSCRIPTION. Now if I delete USER_DEFAULTS_LOGIN group it does not affects USER_DEFAULTS_SUBSCRIPTION group. This was possible in android preference as creation of preference requires name. I guess there should be similar solution in ios. I have heard of 'domains' and 'suits' but does not understands there purpose. Kindly help.
UserDefaults API provides a way to set data for a key. In your example, you would define your keys to be USER_DEFAULTS_LOGIN and USER_DEFAULTS_SUBSCRIPTION. The data you associate with those keys can be one of several types - bool, number, string, URL, date, array, dictionary, or a bag-of-bytes (NSData).
See https://developer.apple.com/reference/foundation/userdefaults for more details on types and API usage.

Obtaining CNContact from CNContactRelation

I am trying to obtain all related contacts to a selected contact. The way to do this seems to be via mycontact.contactRelations. This gives an array of CNLabeledValue with each of those containing a CNContactRelation as their value. There is then a name property, but it appears nothing else.
The Xamarin documentation for CNContact.ContractRelations seems to suggest I should be able to obtain the corresponding CNContact from a CNContactRelation but I can see no way to do this in objc, other than searching for a contact with a matching name. This may or may not be the contact I'm after, even if they also have a relationship to a contact with the same name as mycontact.
The identifier on the CNLabeledValue seems to refer to the label rather than the related contact, or at least doesn't seem to match the identifier if I select that contact from a CNContactPickerViewController.
Is there a way to obtain the CNContact for the related contact in objc ?
The related names field in Contacts doesn't store linkages, just names. You'll notice this from a user perspective if you go to edit related names in the iOS or OS X Contacts app — it's just a freeform text field. Those apps (and other system apps) will recognize when a related name matches that of another contact (which is why you can ask Siri to call your mother, etc), but they also let you put down names for people you don't have contact info for.
So a CNContactRelation just contains a string, and the only way to find (if there are any) contacts matching a related name is to search the contact store. Use unifiedContactsMatchingPredicate:keysToFetch:error: to search, with a predicate constructed by calling predicateForContactsMatchingName:.

QuickBlox update custom object without using ID

I use QuickBlox for my chat app.
When updating/deleting a custom object, is it possible not to use object.ID?
For example, I use a custom field "requestor_id" and "responder_id" to identify FriendRequest Custom Object. I need to update the status of a friend request to from "pending" to "approved".
I don't want to fetch the ID first in order to update it.
Is it possible to send along a dictionary like #{"responder_id": 123, #"requestor_id":234}?
I think it's not possible. Deleting or updating take place only with object's ID.. so you need perform at last 2 actions:
fetch items
updating/deleting

Adding EKParticipants to an EKEvent

I'd like to programatically add a participant to an EKEvent on iOS.
EKParticipant's class reference states "You do not create EKParticipant objects directly. Send attendees to an EKEvent object to get an array of EKParticipant objects.".
EKEvent's class reference states that the 'attendees' member (NSArray) is "The attendees associated with the event, as an array of EKParticipant objects. (read-only)"
Not possible. This is done deliberately by Apple so only the user can create or edit meetings' invitees. The only way is to display a EKEventEditViewController and let the user edit the list themselves.
You can delve into private API, but you risk a 99% app store validation failure.

Resources