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로 리턴됩니다. 때문에, 이미지 등의 문제는 이미지 명명법에 따라 사용해줍니다 (이미지 명명법 참고)
'옛글 > 아이폰 프로그래밍' 카테고리의 다른 글
[iOS프로그래밍] NSString Split(Token 으로 자르기) (0) | 2012.07.06 |
---|---|
[iOS프로그래밍] NSRunLoop로 잠시 Timer걸기 (0) | 2012.07.06 |
MAC App용 이미지 파일 변경앱 'img2icns' (0) | 2012.06.29 |
MAC App sandboxing 하기 (0) | 2012.06.29 |
iOS앱을 MAC App으로 Porting하기 (0) | 2012.06.29 |