Доступ к общему делегату и iPhone / iPad? - PullRequest
0 голосов
/ 18 июня 2010

Как получить доступ к общему делегату или «делегату» конкретного устройства в универсальном приложении?

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

Как мне получить доступ к этим делегатам в коде?

1 Ответ

4 голосов
/ 18 июня 2010

Я не уверен, что вы подразумеваете под делегатами от конкретного устройства. Я предполагаю, что под «общим делегатом» вы ссылаетесь на своего делегата приложения. Если вам нужно что-то конкретное для iPhone или iPad, вы можете сделать это:

BOOL isiPad = NO;
if ([UIDevice instancesRespondToSelector:@selector(userInterfaceIdiom)]) {
    UIUserInterfaceIdiom idiom = [[UIDevice currentDevice] userInterfaceIdiom];

    if (idiom == UIUserInterfaceIdiomPad) {
        isiPad = YES;
    }
}

if (isiPad) {
    // iPad-specific stuff
} else {
    // iPhone-specific stuff
}

Это лучше, чем использовать #define s, потому что вы можете скомпилировать одно универсальное приложение для работы на всех устройствах iOS.

РЕДАКТИРОВАТЬ: Добавлен некоторый самоанализ, чтобы предотвратить это сбой на iPhone OS 3.1.x и более ранних версий. Спасибо, Бастиан.

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