iOS Universal 프로그래밍. 모델 구별하기


iOS/아이폰 프로그래밍 2012.07.02 10:26



iOS 유니버셜(패드, 폰)으로 구별해서 프로그래밍을 하는 경우에는 One Source로 구현하는 경우가 많습니다(굳이 UI 가 크게 다르지 않다면, 다르더라도 기능은 거의 비슷하므로) 

이 때 따로 클래스를 하나 두고 모델타입을 리턴해주는 방식으로 구현하면 굉장히 편리합니다. 
물론 UI .. Idom 으로 Pad등을 구별하는 방법도 있긴하지만, 맥으로의 포팅이나 이래저래 봤을 때 효율적이진 않아 보입니다. 


클래스를 하나 만든 뒤 


+ (BOOL)isIpad

{

if ([self getModelType] == MODEL_IPAD) {

return YES;

} else {

return NO;

}

    

}


+ (MODEL_TYPE)getModelType

{


if ([[[UIDevice currentDevice] model] isEqualToString:@"iPhone"]||

        [[[UIDevice currentDevice] model] isEqualToString:@"iPhone Simulator"]) {

//        NSLog(@"It's iPhone");

return MODEL_IPHONE;

}
    else if ([[[UIDevice currentDevice] model] isEqualToString:@"iPad"]||

             [[[UIDevice currentDevice] model] isEqualToString:@"iPad Simulator"]) {

//        NSLog(@"It's iPad");

return MODEL_IPAD;

} else {

NSLog(@"It's unkown");

return MODEL_UNKOWN;

}

}


위와 같이 UIDevice crrentDevice를 사용해서 리턴을 해주는 방법을 사용해주시면 편리할 듯 합니다. 

레티나의 경우에는 따로 모델명이 구분되지 않습니다. 레티나 아이패드도 모델명은 iPad로 리턴됩니다. 때문에, 이미지 등의 문제는 이미지 명명법에 따라 사용해줍니다 (이미지 명명법 참고)

저작자 표시 비영리 변경 금지
신고

WRITTEN BY
ShakeJ

0 ,