我有一个使用用户通讯录作为联系人的应用程序。我还有其他信息希望存储在每个用户的基础上(每个通讯簿条目的基础上)。我允许用户导入单个用户、通讯簿组或他们的所有联系人。因为我希望继续允许外部应用程序更改用户地址簿,所以我没有导入所有信息。相反,我选择更改每个导入用户的通讯簿条目,添加一个kABPersonInstantMessageProperty
密钥。我想用用户名填充到这个键MyAppsRecordLocaterNumber@MyAppsDomain.com
。我认为最终用户会立即将其视为既不a:
引人注目,又b:
是指向我的应用程序信息的链接(将外部联系信息与我的应用程序添加并保留的内部信息挂钩)。唯一的问题?我不知道如何向kABPersonInstantMessageProperty
钥匙。我已经想出了如何添加多值条目,例如“家庭地址”,但是在搜索堆栈溢出时,我想出了 4 个(只有四个!)关于此键 ( kABPersonInstantMessageProperty
) 的问题的条目。
下面是我将“家庭地址”添加到一个人的通讯录条目的部分代码,我承认我不知道如何将其更改为 kABPersonInstantMessageProperty。
ABMutableMultiValueRef address = ABMultiValueCreateMutable(kABMultiDictionaryPropertyType);
NSMutableDictionary *addressDict = [[NSMutableDictionary alloc] init];
NSMutableString *street = [NSMutableString stringWithFormat:@"%i",i];
[street appendString:@" Main Street"];
[addressDict setObject:[NSString stringWithString:street] forKey:(NSString *)kABPersonAddressStreetKey];
[addressDict setObject:@"San Jose" forKey:(NSString *)kABPersonAddressCityKey];
[addressDict setObject:@"CA" forKey:(NSString *)kABPersonAddressStateKey];
NSMutableString *zip = [NSMutableString stringWithString:@"95"];
[zip appendString:[NSString stringWithFormat:@"%00i",i]];
[addressDict setObject:zip forKey:(NSString *)kABPersonAddressZIPKey];
ABMultiValueAddValueAndLabel(address, addressDict, kABHomeLabel, NULL);
ABRecordSetValue(record, kABPersonAddressProperty, address, NULL);
// add the record
ABAddressBookAddRecord(addressBook, record, NULL);
有人可以帮忙吗?我会很感激。