문제

안녕하세요

iPhone 2.2 용 앱 하나를 만들고 싶습니다.* 및 버전 3.0. 2.2*의 일부 방법은 3.0에서 더 이상 사용되지 않습니다. (uitableviewcell settext 및 setlabel과 같은)

iPhone에서 사용되는 펌웨어 버전을 확인하고 사용할 다른 방법을 설정하는 방법이 있습니까?

도움이 되었습니까?

해결책

__iphone_3_0과 같은 조건부 편집에 사전 프로세서 지시문을 사용하고 두 개의 개별 실행 파이브를 구축해야합니다.

예를 들어:

 #ifdef __IPHONE_3_0
 // code specific to version 3
 #else
 // code specific to version 2
 #end

런타임에 버전을 감지 해야하는 경우 [[uidevice currentDevice] SystemVersion]을 사용할 수 있습니다. 현재 버전의 iPhone OS로 문자열을 반환합니다.

다른 팁

앞에서 언급 한 바와 같이, 확인하십시오. 특정 iPhone 버전을 타겟팅하는 방법은 무엇입니까?

다른 참조 스레드에서 언급했듯이, 사전 프로세서 지시문을 사용하여 하나의 코드베이스에서 두 개의 응용 프로그램을 생성 할 수 있지만 여전히 두 개의 응용 프로그램이 필요합니다 (하나는 2.x 용 및 3.x 용 1 개).

컴파일 타임 지침을 사용하여 실행 시간 결정을 내릴 수 없습니다.

다른 스레드에는 더 자세한 내용이 있습니다.

대체 솔루션, responsStoseLector 사용을 확인하십시오. 예를 들어-

CGSize expectedLabelSize;
    if ([subTitle respondsToSelector:@selector(sizeWithAttributes:)])
    {
        expectedLabelSize = [subTitle sizeWithAttributes:@{NSFontAttributeName:subTitleLabel.font}];
    }else{
        expectedLabelSize = [subTitle sizeWithFont:subTitleLabel.font constrainedToSize:subTitleLabel.frame.size lineBreakMode:NSLineBreakByWordWrapping];
    }
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top