Я лично пытаюсь повторно использовать код, где могу, но многим разработчикам нравится создавать отдельные классы для версий для iPhone и iPad, чтобы избежать «кода спагетти». Это полностью зависит от сложности приложения, которое вы пишете. Если это простое приложение, то я не вижу причин просто предоставлять логику для тестирования устройства и выполнять другой код на основе этого, а также для создания нескольких классов для каждого. Хотя, есть много преимуществ для создания отдельного кода для каждого, такого как модульное тестирование или простое обновление специального кода iPad и наоборот. Я видел, что успешные разработчики используют обе методологии, и оба хорошо работают, если вы документируете и прагма правильно маркируете свой код.
Here является примером использования Diff классов
Вы всегда можете просто создать простой класс, который возвращает тип устройства, а если печатал полный тест беспокоит человек. Это удобно, если вы хотите протестировать такие вещи, как iPod и другие типы устройств. В большинстве случаев это не тот подход, который я использую, если проект не очень большой, и классы начинают чувствовать себя загроможденными.
// TestDevice.h
@interface TestDevice : NSObject
+ (BOOL)isIpad;
@end
// TestDevice.m
#import "TestDevice.h"
@implementation TestDevice
+ (BOOL)isIpad
{
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
return YES;
return NO;
}
@end
Тогда просто добавить его в свой .PCH, и вы можете использовать его в любом месте приложения, вызвав ...
if ([TestDevice isIpad]) {
// Something
}
else {
// Something else
}