Snippit:
NSString *phoneNumber = (NSString *) [[NSUserDefaults standardUserDefaults] objectForKey:@"SBFormattedPhoneNumber"]; // Will return null in simulator!
NSLog(@"Formatted phone number [%@]", phoneNumber);
Я [недавно] запустил этот код как есть на ОС 2.2.1 [и ОС 3.0].
Он работает как положено при запуске на устройстве и возвращает мой номер телефона с полными международными телефонными кодами [1 в моем случае].
При запуске на симуляторе значение [возвращено] является пустой строкой, поэтому оно работает только на реальном устройстве iPhone.
Я не тестировал его на iPod Touch.
...
На этой неделе запустил этот код на другом устройстве и вместо числа получил нулевое значение.
При дальнейшем исследовании выясняется, что число, возвращаемое этим фрагментом кода, является числом, которое установлено в iTunes для устройства.
Если вы не ввели номер iPhone в iTunes при активации устройства или, возможно, (как в моем случае), если значением по умолчанию не был номер iPhone, и вы все равно нажали OK, так что iTunes не перечисляет номер телефона, когда ваш iPhone подключен, этот код будет возвращать пустую строку.
[Выше приведено отредактированное объединение комментариев, которые я недавно разместил в другой статье на эту тему на http://www.alexcurylo.com/blog/2008/11/15/snippet-phone-number/]