現在、iOS で AddressBook を使用しています。ユーザーのすべての連絡先からメールを取得し、NSMutableArray
. 次に、この配列をサーバー [PHP] に渡す必要があります。しかし、電子メールが二重引用符で囲まれているという問題があるため、次のようになります。
(
"user@gmail.com",
"user2@gmail.com",
"user3@gmail.com"
)
それが私のコードです:
ABAddressBookRef addressBook = ABAddressBookCreateWithOptions(NULL, NULL);
__block BOOL accessGranted = NO;
if (ABAddressBookRequestAccessWithCompletion != NULL) { // we're on iOS 6
dispatch_semaphore_t sema = dispatch_semaphore_create(0);
ABAddressBookRequestAccessWithCompletion(addressBook, ^(bool granted, CFErrorRef error) {
accessGranted = granted;
dispatch_semaphore_signal(sema);
});
dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER);
}
else { // we're on iOS 5 or older
accessGranted = YES;
}
if (accessGranted) {
CFArrayRef people = ABAddressBookCopyArrayOfAllPeople(addressBook);
_usersEmails = [[NSMutableArray alloc] initWithCapacity:CFArrayGetCount(people)];
for (CFIndex i = 0; i < CFArrayGetCount(people); i++) {
ABRecordRef person = CFArrayGetValueAtIndex(people, i);
ABMultiValueRef emails = ABRecordCopyValue(person, kABPersonEmailProperty);
for (CFIndex j=0; j < ABMultiValueGetCount(emails); j++) {
NSData* email = [(__bridge NSString*)ABMultiValueCopyValueAtIndex(emails, j) dataUsingEncoding:NSUTF8StringEncoding];
[_usersEmails addObject:email];
}
CFRelease(emails);
}
CFRelease(addressBook);
CFRelease(people);
サーバー側を実装していた Web プログラマーは、二重引用符なしで文字列の配列を渡す必要があると私に言いました。
配列の各文字列の二重引用符を削除するにはどうすればよいですか?
アップデート:
これは、サーバーによって受信された実際のデータの一部です。
\"user@gmail.com\"','\"user@gmail.com\"','\"user@gmail.com\"','\"user@me.com\"