問題タブ [abmultivalue]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - 「2 項演算子 '<' は 2 つの CFIndex オペランドに適用できません」 - ABMultiValue から電話番号を選択 (アドレス帳)
AddressBook と AddressBookUI を使用してアドレス帳のビューを表示しようとしています。ユーザーは連絡先をタップしてから電話番号をタップすると、アプリが電話番号を受け取ります。ABMultiValue を繰り返し処理して、選択した識別子を持つエントリを見つけようとすると、問題が発生します。ループBinary operator '<' cannot be applied to two CFIndex operands
のある行 (13 行目) でエラー " " が発生します。for
以下にコードを貼り付けました。ありがとう!
ios - 並べ替え ABMultiValueRef(kABPersonPhoneProperty)
で電話のプロパティを取得するABAddressBook
には、ループを使用します。
編集:私が試したコード:
しかし、これが最良の選択肢だとは思いません..?
たぶん次のようなもの:
連絡先に電話番号の値が複数ある場合は、 でカウントできますABMultiValueGetCount(phones)
。
さて、例を見てみましょう:
連絡先 « Peter » には、ABAddressBook
(電話番号NSLog
) に 5 つの電話番号があります:
02 35 00 00 00
07 00 00 00 00
+1(919)949-8234
06 00 00 00 00
9009498923
これらの数字を並べ替えて、1 つだけを に保存したいと思いますNSString
。
番号が 07 で始まる場合 —> TAKE IT. (に割り当てるNSString
)
番号が 06 で始まる場合 —> それを取ります。(に割り当てるNSString
)
他の番号の場合 —> 割り当てません。
それらが 2 つの電話番号である場合: 1 つは 06 で、もう 1 つは 07 で、最後に登録されABAddressBook
た番号を取得します (または、これが不可能または複雑すぎる場合は、07 で始まる番号を取得します)。
の連絡先ごとにこのループを作成したいと思いますABAddressBook
。すべての連絡先には 1 つの番号しかありません (番号が 06 または 07 で始まらない場合は 0)。
私の例では:
ピーターはこの番号を持っています: 07 00 00 00 00