2016-03-31 13 views
1

私はiOS9 +のみをサポートする新しいiOSアプリケーションを実装しています。このため、新しい連絡先フレームワークを使用して、デバイスに保存されている連絡先の電話番号にアクセスしています。iOS9連絡先フレームワークに電話番号ラベルがありませんか?

CNPhoneNumberは、さまざまなタイプの電話番号のラベルを定義しますが、実際のiOS連絡先画面よりもはるかに小さい種類のリストが含まれています。たとえば私のiPhoneでは、連絡先に「仕事」タイプの番号を追加できますが、対応するCNLabelPhoneNumberWorkラベルはSDKにありません。私は間違った場所を探していますか、これはちょうどそれですか?連絡先にはAppleの "$ !! $"という文字列を私のアプリケーションにハードコードしない限り、私が識別できない番号の束があるかもしれませんか?私が行くと私の連絡先に番号を追加すると

@available(iOS 9.0, *) 
public let CNLabelPhoneNumberiPhone: String 
@available(iOS 9.0, *) 
public let CNLabelPhoneNumberMobile: String 
@available(iOS 9.0, *) 
public let CNLabelPhoneNumberMain: String 
@available(iOS 9.0, *) 
public let CNLabelPhoneNumberHomeFax: String 
@available(iOS 9.0, *) 
public let CNLabelPhoneNumberWorkFax: String 
@available(iOS 9.0, *) 
public let CNLabelPhoneNumberOtherFax: String 
@available(iOS 9.0, *) 
public let CNLabelPhoneNumberPager: String 

使用可能なタイプのリストははるかに長いです:私の知る限り唯一のこれらのラベルを提供CNPhoneNumberを伝えることができるよう

答えて

2

これらは電話番号ラベルの唯一の定義済みのものであるという意味で正しいです。

しかし、Appleのドキュメントで説明したように:電話番号は、これらの定数は、CNPhoneNumber値を持つCNLabeledValueオブジェクトにを使用することができ、定義済みラベルです

ラベル。

あなたはまだCNLabeledValuelabelプロパティからNSString*(ノートないenumを)になるだろう、それが連絡先に表示されるものは何でも含まれています。だから、あなたは "Custom Labels"オプションで作成された奇妙な入力ユーザーを得るかもしれない。質問については


$ !! $「コンタクト私はAppleのハードコードしない限り、私は識別することができません数字の束を有していてもよい 『』私のアプリに文字列を?」

答えがCNContactNO

phoneNumbersあろう:

このプロパティは、ラベルとCNPhoneNumber値をそれぞれ有するCNLabeledValueオブジェクトの配列です。

あなたはそれにもかかわらず反復処理すると、.labelはあなたの仕事 'のような何かを与えるだろう、と.valueはあなたがしたい実際の数を与えるだろう。

EDIT:

は興味深いことに、Contacts Framework Referenceで、CNLabeledValueクラスで "ジェネリックラベル" の定数であるように思われ、CNLabelHomeCNLabelWorkが表示されます。

+0

私の問題は、CNLabeledValueの.labelプロパティが実際に私にマップされる必要のある種の識別子のような文字列を与えていることです。だからこのような私のコード: func mapData(number:CNLabeledValue?){ let valueObj = number?.value as? CNPhoneNumber { numberLabel.text = "\(valueObj.stringValue)" } CNLabelPhoneNumberWorkFax numberTitleLabel.text =数?.LABEL } numberTitleLabelは_ $のような文字列なってしまいます!モバイル!$ _ –

+0

'localizedStringForLabel(_ :)'メソッドを試してみませんか? – zcui93

+1

あなたは、電話番号以外のラベルを使って正しい軌道に乗っていました。したがって、CNLabelWorkは '仕事'タイプの電話番号に使用できます。 –

関連する問題