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 , 댓글  3개가 달렸습니다.
  1. 항상 좋은 정보 고맙습니다 :-)
  2. 애드박스가 밑에 있네요..그래도 상관이 없다봐요...????
  3. 대영주모그레인 2013.03.13 17:28 신고
    안녕하세요 저 지금 디파인 해놓으신건 어떻게 되시나요 ^^
secret