NSInteger가 유효하다는 것을 어떻게 확인할 수 있습니까?NSInteger! = nil
NSInteger previousScore = [[self score] integerValue];
if (previousScore != nil) {
//do something
}
NSInteger가 유효하다는 것을 어떻게 확인할 수 있습니까?NSInteger! = nil
NSInteger previousScore = [[self score] integerValue];
if (previousScore != nil) {
//do something
}
NSInteger
는 개체가 아닙니다. 그것은 단순히 타입 변환 된 프리미티브 int
입니다. 따라서 결코 nil
이 될 수 없습니다. int
을 똑바로 사용하는 것과 똑같이 취급하십시오.
편집 : 64 비트 시스템에서 NSInteger
실제로 long
및 32 비트 시스템에이 int
입니다입니다, 세자르의 의견에 따라 상세히 설명합니다. 당신이 객체가 아닌 프리미티브 값을 다시 받고으로이 작동
NSNumber *previousScore = [self score];
if (previousScore != nil) {
NSInteger previousScoreValue = [previousScore integerValue];
// do something
}
: 코드에서 유효성을 확인하려면
은 다음과 같이 정의됩니다. #if __LP64__ typedef long NSInteger; #else typedef int NSInteger; endif –
실제로 많은 경우 NSInteger는 nil이므로 nil이 0과 같기 때문에 기본적으로 컴파일러 경고를 얻을 수 있습니다. [자체 점수] nil ... –
유감스럽게도 nil 0입니다 이전 Score 주어진 예제 코드에서 0 (없음) 될 것입니다. "po nil == 0"디버거에서 시도하십시오. "사실"이라고 인쇄합니다 – nont
인사말이 제거되었습니다. "다음에 시간을내어 감사하십시오." –