tôi đã đưa ra một giải pháp phần này
bạn có thể lấy tên thiết bị như sau
NSString *ownerName = [[UIDevice currentDevice] name];
bằng tiếng Anh một thiết bị được gọi nguyên gốc, ví dụ, 'iPhone Joe blogg của'
tách tên ra
NSRange t = [ownerName rangeOfString:@"’s"];
if (t.location != NSNotFound) {
ownerName = [ownerName substringToIndex:t.location];
}
bạn có thể lấy tên đó và tìm kiếm địa chỉ liên hệ
CNContactStore * contactStore = [CNContactStore new];
NSPredicate *usersNamePredicate = [CNContact predicateForContactsMatchingName:usersName];
NSArray * keysToFetch = @[[CNContactFormatter descriptorForRequiredKeysForStyle:CNContactFormatterStyleFullName],CNContactPhoneNumbersKey,CNContactEmailAddressesKey,CNContactSocialProfilesKey, ];
NSArray * matchingContacts = [contactStore unifiedContactsMatchingPredicate:usersNamePredicate keysToFetch:keysToFetch error:nil];
Tất nhiên các ngôn ngữ khác khác nhau trong chuỗi tên thiết bị, ví dụ: 'iPhone Von Johann Schmidt' cần phân tích nhiều hơn cho các ngôn ngữ khác và nó chỉ hoạt động nếu người dùng không thay đổi tên thiết bị trong iTunes thành "Joes phone" nhưng nó cung cấp cho bạn một điểm khởi đầu
cũng ... nó cung cấp cho bạn một mảng các mục phù hợp :) Vì vậy, nếu có nhiều hơn một liên hệ với mảng đó bạn chỉ cần sử dụng nồi may mắn và đi với một đầu tiên hoặc làm việc qua nhiều thẻ và có những gì bạn cần từ mỗi.
tôi đã nói nó là một giải pháp phần và mặc dù nó sẽ không làm việc cho tất cả các trường hợp người dùng mà bạn có thể tìm thấy nó hoạt động đối với nhiều người dùng của bạn và làm giảm ma sát ít
Rõ ràng không, theo @wilshipley: http : //twitter.com/wilshipley/status/1369679612 –
Bạn có thể cho tôi biết cách tôi có thể gắn thẻ Tôi nhớ trong mac không? – Johnykutty
@Johnykutty Trên Mavericks, hãy chọn thẻ của bạn, sau đó sử dụng mục thẻ ** Tạo thẻ này làm thẻ của tôi **. – bneely