Guest User

Untitled

a guest
May 21st, 2018
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.77 KB | None | 0 0
  1. -(NSString *)fullNameForPhone:(NSString *)ph withAlternativeText:(NSString *)text
  2. {
  3. ABAddressBookRef addressBookRef = ABAddressBookCreate();
  4. NSLog(@"create addressBookRef");
  5. NSString *stringToReturn = text;
  6.  
  7. CFArrayRef allPeopleRef = ABAddressBookCopyArrayOfAllPeople(addressBookRef);
  8. NSLog(@"create allPeopleRef");
  9. CFIndex nPeople = ABAddressBookGetPersonCount(addressBookRef);
  10.  
  11. int i = 0;
  12. BOOL nameFound = NO;
  13.  
  14. while ((i < nPeople) && (!nameFound))
  15. {
  16. ABRecordRef recordRef = CFArrayGetValueAtIndex(allPeopleRef, i);
  17. NSLog(@" create recordRef");
  18. CFStringRef allRecordPhonesRef = ABRecordCopyValue(recordRef, kABPersonPhoneProperty);
  19. NSLog(@" create allRecordPhonesRef");
  20. CFIndex nPhones = ABMultiValueGetCount(allRecordPhonesRef);
  21. int currentPhone = 0;
  22. for (currentPhone = 0; currentPhone < nPhones; currentPhone++)
  23. {
  24. CFStringRef currentPhoneNumberRef = ABMultiValueCopyValueAtIndex(allRecordPhonesRef, currentPhone);
  25. NSLog(@" create currentPhoneNumberRef");
  26. NSString *currentCleanPhoneNumber = [self cleanPhoneNumberForString:[NSString stringWithFormat:@"%@", currentPhoneNumberRef]];
  27. if (currentPhoneNumberRef!=NULL)
  28. {
  29. NSLog(@" release currentPhoneNumberRef");
  30. CFRelease(currentPhoneNumberRef);
  31. }
  32.  
  33. if ([ph isEqualToString:currentCleanPhoneNumber])
  34. {
  35. CFStringRef firstName = ABRecordCopyValue(recordRef, kABPersonFirstNameProperty);
  36. CFStringRef lastName = ABRecordCopyValue(recordRef, kABPersonLastNameProperty);
  37. NSString *fullName = [self fullNameForFirstName:[NSString stringWithFormat:@"%@", firstName]
  38. andLastName:[NSString stringWithFormat:@"%@", lastName]];
  39. if (firstName != NULL)
  40. CFRelease(firstName);
  41. if (lastName != NULL)
  42. CFRelease(lastName);
  43. stringToReturn = fullName;
  44. nameFound = YES;
  45. break;
  46. }
  47.  
  48. }
  49.  
  50. CFRelease(allRecordPhonesRef);
  51. NSLog(@" release allRecordPhonesRef");
  52. CFRelease(recordRef);
  53. NSLog(@" release recordRef");
  54. i++;
  55. }
  56. CFRelease(allPeopleRef);
  57. NSLog(@"release allPeopleRef");
  58. CFRelease(addressBookRef);
  59. NSLog(@"release addressBookRef");
  60. return stringToReturn;
  61. }
  62.  
  63. 2009-07-31 00:20:05.230 abmodular[21747:20b] create addressBookRef
  64. 2009-07-31 00:20:05.231 abmodular[21747:20b] create allPeopleRef
  65. 2009-07-31 00:20:05.231 abmodular[21747:20b] create recordRef
  66. 2009-07-31 00:20:05.232 abmodular[21747:20b] create allRecordPhonesRef
  67. 2009-07-31 00:20:05.232 abmodular[21747:20b] create currentPhoneNumberRef
  68. 2009-07-31 00:20:05.232 abmodular[21747:20b] release currentPhoneNumberRef
  69. 2009-07-31 00:20:05.232 abmodular[21747:20b] create currentPhoneNumberRef
  70. 2009-07-31 00:20:05.233 abmodular[21747:20b] release currentPhoneNumberRef
  71. 2009-07-31 00:20:05.233 abmodular[21747:20b] release allRecordPhonesRef
  72. 2009-07-31 00:20:05.233 abmodular[21747:20b] release recordRef
  73. 2009-07-31 00:20:05.233 abmodular[21747:20b] create recordRef
  74. 2009-07-31 00:20:05.234 abmodular[21747:20b] create allRecordPhonesRef
  75. 2009-07-31 00:20:05.234 abmodular[21747:20b] create currentPhoneNumberRef
  76. 2009-07-31 00:20:05.234 abmodular[21747:20b] release currentPhoneNumberRef
  77. 2009-07-31 00:20:05.234 abmodular[21747:20b] release allRecordPhonesRef
  78. 2009-07-31 00:20:05.235 abmodular[21747:20b] release recordRef
  79. 2009-07-31 00:20:05.235 abmodular[21747:20b] release allPeopleRef
  80. [Session started at 2009-07-31 00:20:05 +0400.]
  81. GNU gdb 6.3.50-20050815 (Apple version gdb-966)
  82. ....
  83. Attaching to process 21747.
  84. kill
  85. quit
  86. The Debugger has exited with status 0.(gdb)
  87.  
  88. ABRecordRef recordRef = CFArrayGetValueAtIndex(allPeopleRef, i);
  89.  
  90. CFRelease(recordRef);
  91.  
  92. CFRelease(allPeopleRef);
Add Comment
Please, Sign In to add comment