作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我向用户显示地址簿 View ,并让他们单击联系人并选择电话号码。如果他们选择一个电话号码,我想获取整数形式的电话号码和 NSString 形式的联系人姓名。
我尝试使用以下代码来做到这一点:
//printf("%s\n",[[(NSArray *)ABMultiValueCopyArrayOfAllValues(theProperty) objectAtIndex:identifier] UTF8String]);
//CFArrayRef *arrayString = [[(NSArray *)ABMultiValueCopyArrayOfAllValues(theProperty) objectAtIndex:identifier] UTF8String];
NSArray *arrayString = [(NSArray *)ABMultiValueCopyArrayOfAllValues(theProperty) objectAtIndex:identifier];
printf("%s\n", arrayString);
此代码位于此方法内:
- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person property:(ABPropertyID)property identifier:(ABMultiValueIdentifier)identifier
我正在检查用户是否使用此代码选择了电话号码:
if (propertyType == kABStringPropertyType)
{
[self wrongSelection];
}
else if (propertyType == kABIntegerPropertyType)
{
[self wrongSelection];
}
else if (propertyType == kABRealPropertyType)
{
[self wrongSelection];
}
else if (propertyType == kABMultiStringPropertyType)
{
//This is the phone number...
我可以使用 printf 获取要在控制台中显示的电话号码,但是我无法弄清楚如何将其转换为整数以及如何获取联系人姓名,即使所选属性不是一个人的属性姓名。
此外,我所做的事情似乎效率很低。有没有更好的方法来做到这一点?
编辑:如果我不能将它们存储为 int,那么字符串就可以了。我只是不知道如何从该数组转到实际的字符串。如果我将其转换或保存为 UTF8String,我总是会收到一些错误。
最佳答案
为了有效地获取属性(就阅读而言),您可以在回调方法中执行以下操作:
switch( propertyType ) {
case kABMultiStringPropertyType:
// this is the phone number, do something
break;
default:
[self wrongSelection];
break;
}
不过,我不确定您是否真的需要解析它。要从记录中获取电话号码,您可以执行以下操作(同样在回调方法中):
ABMultiValueRef phoneNumberProperty = ABRecordCopyValue(person, kABPersonPhoneProperty);
NSArray* phoneNumbers = (NSArray*)ABMultiValueCopyArrayOfAllValues(phoneNumberProperty);
CFRelease(phoneNUmberProperty);
// Do whatever you want with the phone numbers
NSLog(@"Phone numbers = %@", phoneNumbers);
[phoneNumbers release];
关于iphone - 如何从地址簿联系人获取电话号码 (iphone sdk),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/286207/
我是一名优秀的程序员,十分优秀!