Генерация устройства iPhone - PullRequest
3 голосов
/ 11 ноября 2009

У меня есть следующий код

@implementation UIDevice(machine)

- (NSString *)machine
{
  size_t size;

  // Set 'oldp' parameter to NULL to get the size of the data
  // returned so we can allocate appropriate amount of space
  sysctlbyname("hw.machine", NULL, &size, NULL, 0); 

  // Allocate the space to store name
  char *name = malloc(size);

  // Get the platform name
  sysctlbyname("hw.machine", name, &size, NULL, 0);

  // Place name into a string
  NSString *machine = [NSString stringWithCString:name];

  // Done with this
  free(name);

  return machine;
}

@end

/* ... */

NSLog(@"device: %@", [[UIDevice currentDevice] machine]);

Я получаю вывод как:

Platforms:
-----------
iPhone1,1 
iPhone1,2 
iPod1,1   
iPod2,1   

что означают два числа, добавленные после iphone / ipod touch, i, e (1,1), (1,2) и т. Д.?

Спасибо Biranchi

Ответы [ 2 ]

7 голосов
/ 11 ноября 2009

iPhone1,1 : iPhone (оригинал)
iPhone1,2 : iPhone 3G
iPhone2,1 : iPhone 3GS
iPhone3,1 : iPhone 4
iPhone4,1 : iPhone 4S

iPod1,1 : iPod touch (оригинал)
iPod2,1 : iPod touch (2-го поколения)
iPod3,1 : iPod touch (3-го поколения)
iPod4,1 : iPod touch (4-го поколения)

iPad1,1 : iPad (оригинал)
iPad2,1 : iPad 2
iPad3,1 : iPad (3-го поколения)

0 голосов
/ 11 ноября 2009

Аппаратные ревизии. Думайте о них как о версии платформы. Вы также можете получить эту информацию от UIDevice; почему ты идешь так низкоуровневый?

Попробуйте это:

UIDevice *dev = [UIDevice currentDevice];
NSLog(@"Information for device '%@' (UDID '%@')", [dev name], [dev uniqueIdentifier]);
NSLog(@"Model: %@", [dev model]);
NSLog(@"OS: %@ version %@", [dev systemName], [dev systemVersion]);

... и т.д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...