PKPayment не всегда возвращает имя

При создании моего PKPaymentRequest я указываю некоторые обязательные поля, например:

request.requiredBillingAddressFields = PKAddressFieldPostalAddress|PKAddressFieldEmail|PKAddressFieldName;
request.requiredShippingAddressFields = PKAddressFieldEmail|PKAddressFieldName;

Примечание. Мне нужны только адрес электронной почты и имя для выставления счетов, но если я не укажу PKAddressFieldEmail|PKAddressFieldName в requiredShippingAddressFields, пользовательский интерфейс ApplePay не запрашивает это.

Затем я пытаюсь извлечь имя следующим образом. Не всегда ясно, приходит ли он на адрес доставки или адрес выставления счета, поэтому я проверяю оба.

NSString *name = (__bridge_transfer NSString *) ABRecordCopyCompositeName(payment.shippingAddress);
if (!name) {
    name = (__bridge_transfer NSString *) ABRecordCopyCompositeName(payment.billingAddress);
}

Но иногда имя просто не появляется. Периодически, иногда появляется, иногда ничего не меняется. Это заставляет меня подозревать, что это ошибка в iOS 8.4, но я определенно не исключаю, что это моя вина. (Обычно так.)

Кто-нибудь еще столкнулся с этим? Есть ли обходной путь?


person Jon Tirsen    schedule 04.08.2015    source источник
comment
Я не знаю, почему вы этого не понимаете, хотя у меня есть сильное подозрение, что это может быть ошибка. Я тоже столкнулся с проблемой в Apple Pay, и она работала хорошо до iOS 8.4. Моя проблема: stackoverflow .com/questions/31760725/   -  person Samraan Khaan    schedule 04.08.2015
comment
Я вижу это как в симуляторе, так и на устройстве в iOS 9.2.   -  person AdamPro13    schedule 22.01.2016