iPhone - трюк с типом устройства iPad в заголовочном файле - PullRequest
1 голос
/ 31 июля 2010

Итак, у меня есть функция, которая действительно помогает, когда я создаю URL-адреса для конкретных устройств, но я хотел бы поместить ее в глобальный заголовочный файл, чтобы любой класс мог легко его использовать

- (NSString *)deviceType
{
    NSString *deviceName = @"iphone";
    if([[UIScreen mainScreen] respondsToSelector:@selector(scale)])
    {
        if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad){
            deviceName = @"ipad";
        }
        else {
            deviceName = @"iphone4";
        }
    }
    return deviceName;
}

Это может или не может быть лучшим способом сделать это, но я хотел бы знать, как включить это в глобальный заголовок, чтобы я мог сделать что-то вроде этого

NSString *deviceName = GETDEVICENAME;

Ответы [ 3 ]

0 голосов
/ 31 июля 2010

В вашем проекте должен быть файл с именем% PROJECT% _Prefix.pch.

Любые заголовки, включенные в этот файл, будут доступны всем файлам в вашем проекте.

0 голосов
/ 31 июля 2010

Получил ответ, который работал для меня,

В глобальный заголовочный файл Globals.h я поместил

NSString* deviceType();

в Globals.m я разместил модифицированную функцию

NSString* deviceType()
{
    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad){
        return @"ipad";
    }
    else if([[UIScreen mainScreen] respondsToSelector:@selector(scale)])
    {
        return @"iphone4";
    }
    else{
        return @"iphone";

    }
}
0 голосов
/ 31 июля 2010

#define GETDEVICENAME [whatever deviceType] может быть?

Существует проблема с вашей функцией, хотя на 3.2 UIScreen не реагирует на масштабирование (по крайней мере, публично. Я бы не стал полагаться на это при проверке iPad).

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