自定义标记为 phone 的号码
A custom labeled phone number
Contacts Framework
提供了一种像这样的 phoneNumbers
标签:
CNLabelPhoneNumberiPhone
、CNLabelPhoneNumberMain
、CNLabelPhoneNumberPager
等。
for contact in self.contact.phoneNumbers {
if contact.label == CNLabelPhoneNumberiPhone {
self.phoneNumberTextField.text = (contact.value as! CNPhoneNumber).stringValue
break
}
}
但它们是有限的。没有任何标签为 phoneNumbers
的自定义选项。我可以在 Contacts Framework
上显示标签为 phoneNumbers
的自定义吗?
`
如果 !self.contact.phoneNumbers.isEmpty {
for contact in self.contact.phoneNumbers {
switch contact.label {
case CNLabelHome:
self.phoneNumberTextField.text = (contact.value as! CNPhoneNumber).stringValue
case CNLabelWork:
self.phoneNumberTextField.text = (contact.value as! CNPhoneNumber).stringValue
case CNLabelOther:
self.phoneNumberTextField.text = (contact.value as! CNPhoneNumber).stringValue
case CNLabelPhoneNumberMain:
self.phoneNumberTextField.text = (contact.value as! CNPhoneNumber).stringValue
case CNLabelPhoneNumberiPhone:
self.phoneNumberTextField.text = (contact.value as! CNPhoneNumber).stringValue
case CNLabelPhoneNumberMobile:
self.phoneNumberTextField.text = (contact.value as! CNPhoneNumber).stringValue
case CNLabelPhoneNumberPager:
self.phoneNumberTextField.text = (contact.value as! CNPhoneNumber).stringValue
case CNLabelPhoneNumberHomeFax:
self.phoneNumberTextField.text = (contact.value as! CNPhoneNumber).stringValue
case CNLabelPhoneNumberWorkFax:
self.phoneNumberTextField.text = (contact.value as! CNPhoneNumber).stringValue
case CNLabelPhoneNumberOtherFax:
self.phoneNumberTextField.text = (contact.value as! CNPhoneNumber).stringValue
default:
self.phoneNumberTextField.text = (contact.value as! CNPhoneNumber).stringValue
break
}
}
}
`
所以没有直接的方法来获取自定义标签编号,所以你可以这样做来获取自定义标签编号:-
if !contact.phoneNumbers.isEmpty {
for number in contact.phoneNumbers {
// This return All the phone Numbers
if number.label == CNLabelPhoneNumberiPhone {
//iPhone number.
} else if number.label == CNLabelPhoneNumberMobile {
//Mobile phone number.
} else if number.label == CNLabelPhoneNumberMain {
//Main phone number.
} else if number.label == CNLabelPhoneNumberHomeFax {
//Home fax number.
} else if number.label == CNLabelPhoneNumberWorkFax {
//Work fax number.
} else if number.label == CNLabelPhoneNumberOtherFax {
//Other fax number.
} else if number.label == CNLabelPhoneNumberPager {
//Pager phone number.
} else {
// Custome Phone Number
// number.label -> to get custome label name
}
}
}
一个CNLabeledValue
的label
属性其实就是一个字符串。它可能包含一个值,例如 Dad
或 Apartment
,或者在预定义标签常量的情况下,它等于 _$!<Main>!$_
或 _$!<Home>!$_
,等等。因此,如果您给定 label
与您预定义的任何常量都不匹配,然后按原样显示字符串,因为这可能是自定义标签。
Contacts Framework
提供了一种像这样的 phoneNumbers
标签:
CNLabelPhoneNumberiPhone
、CNLabelPhoneNumberMain
、CNLabelPhoneNumberPager
等。
for contact in self.contact.phoneNumbers {
if contact.label == CNLabelPhoneNumberiPhone {
self.phoneNumberTextField.text = (contact.value as! CNPhoneNumber).stringValue
break
}
}
但它们是有限的。没有任何标签为 phoneNumbers
的自定义选项。我可以在 Contacts Framework
上显示标签为 phoneNumbers
的自定义吗?
` 如果 !self.contact.phoneNumbers.isEmpty {
for contact in self.contact.phoneNumbers {
switch contact.label {
case CNLabelHome:
self.phoneNumberTextField.text = (contact.value as! CNPhoneNumber).stringValue
case CNLabelWork:
self.phoneNumberTextField.text = (contact.value as! CNPhoneNumber).stringValue
case CNLabelOther:
self.phoneNumberTextField.text = (contact.value as! CNPhoneNumber).stringValue
case CNLabelPhoneNumberMain:
self.phoneNumberTextField.text = (contact.value as! CNPhoneNumber).stringValue
case CNLabelPhoneNumberiPhone:
self.phoneNumberTextField.text = (contact.value as! CNPhoneNumber).stringValue
case CNLabelPhoneNumberMobile:
self.phoneNumberTextField.text = (contact.value as! CNPhoneNumber).stringValue
case CNLabelPhoneNumberPager:
self.phoneNumberTextField.text = (contact.value as! CNPhoneNumber).stringValue
case CNLabelPhoneNumberHomeFax:
self.phoneNumberTextField.text = (contact.value as! CNPhoneNumber).stringValue
case CNLabelPhoneNumberWorkFax:
self.phoneNumberTextField.text = (contact.value as! CNPhoneNumber).stringValue
case CNLabelPhoneNumberOtherFax:
self.phoneNumberTextField.text = (contact.value as! CNPhoneNumber).stringValue
default:
self.phoneNumberTextField.text = (contact.value as! CNPhoneNumber).stringValue
break
}
}
}
`
所以没有直接的方法来获取自定义标签编号,所以你可以这样做来获取自定义标签编号:-
if !contact.phoneNumbers.isEmpty {
for number in contact.phoneNumbers {
// This return All the phone Numbers
if number.label == CNLabelPhoneNumberiPhone {
//iPhone number.
} else if number.label == CNLabelPhoneNumberMobile {
//Mobile phone number.
} else if number.label == CNLabelPhoneNumberMain {
//Main phone number.
} else if number.label == CNLabelPhoneNumberHomeFax {
//Home fax number.
} else if number.label == CNLabelPhoneNumberWorkFax {
//Work fax number.
} else if number.label == CNLabelPhoneNumberOtherFax {
//Other fax number.
} else if number.label == CNLabelPhoneNumberPager {
//Pager phone number.
} else {
// Custome Phone Number
// number.label -> to get custome label name
}
}
}
一个CNLabeledValue
的label
属性其实就是一个字符串。它可能包含一个值,例如 Dad
或 Apartment
,或者在预定义标签常量的情况下,它等于 _$!<Main>!$_
或 _$!<Home>!$_
,等等。因此,如果您给定 label
与您预定义的任何常量都不匹配,然后按原样显示字符串,因为这可能是自定义标签。