Определить емкость iPhone / iPod / iPad - PullRequest
1 голос
/ 23 ноября 2010

Я создаю приложение, которое должно определить марку и модель устройства, на котором оно работает (включая размер жесткого диска). Я нашел много постов о том, как идентифицировать различные модели iPhone, но не могу найти никаких ссылок на определение размера HD.

Возможно ли это вообще?

Спасибо заранее, Oli

Ответы [ 3 ]

2 голосов
/ 24 ноября 2010

Я думаю, что стандартные вещи POSIX должны быть доступны на iOS.

Возможно, вы захотите взглянуть на statvfs (часть стандартной библиотеки C) и использовать его, чтобы прочитать объем свободного дискового пространства. Это не часть API Какао, но это имеет смысл.

Документация должна быть на вашем компьютере. В Терминале делаем: man statvfs.

Надеюсь, это поможет. Должен быть 5-слойный, чтобы получить необходимую информацию. :)

1 голос
/ 24 ноября 2010

Версия POSIX (немного взлома):

#include <sys/statvfs.h>

double get_disk_capacity ( char * path)
{
    struct statvfs sfs;
    unsigned long long result = 0;
    double disk_capacity = 0;

    if ( statvfs ( path, &sfs) != -1 )
    {
        result = (unsigned long long)sfs.f_frsize * sfs.f_blocks;

        if (result > 0)
        {
            disk_capacity = (double)result/(1024*1024);
        }
    }

    return disk_capacity;
}

// Sum the size of the two logical partitions (root + user space)
double total_capacity = get_disk_capacity("/") + get_disk_capacity("/private/var");

printf( "%.2f MB", total_capacity);
1 голос
/ 24 ноября 2010

После еще нескольких копаний я выбрал следующий подход, так как он казался наиболее прямым и, кажется, работает нормально.

Спасибо BastiBense за ваше решение, и я буду изучать POSIX в будущем.

NSDictionary *fsAttr = [[NSFileManager defaultManager] attributesOfFileSystemForPath:NSHomeDirectory() error:nil];
float diskSize = [[fsAttr objectForKey:NSFileSystemSize] doubleValue] / 1000000000;
NSLog(@"Disk Size: %0.0f",diskSize);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...