Exemplo n.º 1
0
        private static KeyValuePair <string, string>[] ToContactPhoneNumbers(NSArray <CNLabeledValue <CNPhoneNumber> > phoneNumbers)
        {
            var result = new List <KeyValuePair <string, string> >();

            if (phoneNumbers == null || phoneNumbers.Count < 1)
            {
                return(result.ToArray());
            }

            foreach (var labeledValue in phoneNumbers.ToArray(ptr => new CNLabeledValue <CNPhoneNumber>(ptr)))
            {
                if (labeledValue == null)
                {
                    Debug.Log("Detected a null [CNLabeledValue<CNPhoneNumber>].");
                    continue;
                }

                Func <IntPtr, CNPhoneNumber> valueConstructor = ptr => new CNPhoneNumber(ptr);
                CNPhoneNumber number = labeledValue.GetValue(valueConstructor);
                NSString      label  = labeledValue.Label;

                if (label == null || number == null)
                {
                    Debug.LogFormat("Detected null value in [CNLabeledValue<CNPhoneNumber>] -> [{0}, {1}].",
                                    label != null ? label.UTF8String : "null",
                                    number != null ? number.StringValue.UTF8String : "null");
                    continue;
                }

                result.Add(new KeyValuePair <string, string>(label.UTF8String, number.StringValue.UTF8String));
            }

            return(result.ToArray());
        }
Exemplo n.º 2
0
        private static NSArray <CNLabeledValue <CNPhoneNumber> > ToCNContactPhoneNumbers(KeyValuePair <string, string>[] phoneNumbers)
        {
            if (phoneNumbers == null)
            {
                return(null);
            }

            var result = new NSMutableArray <CNLabeledValue <CNPhoneNumber> >();

            foreach (var phoneNumber in phoneNumbers)
            {
                NSString      label  = NSString.StringWithUTF8String(phoneNumber.Key);
                CNPhoneNumber number = CNPhoneNumber.PhoneNumberWithStringValue(phoneNumber.Value);
                result.AddObject(CNLabeledValue <CNPhoneNumber> .LabeledValueWithLabel(label, number));
            }
            return(result);
        }