아이폰 앱에서 NSDate의 범위를 벗어난 문제가 있습니다. 실제로 변수의 checkThis을 할당하기 전에 내가 초기화를 통해 추적 경우, 지금범위를 벗어난 NSDate
-(id) init
{
if((self=[super init])) {
checkThis = NO;
array = [[NSMutableArray alloc] init];
nextDue = [[NSDate date] retain];
NSDate *testDate = [NSDate date];
}
return self;
}
:
I는 다음과 같이 정의 된 인터페이스를 가지고 구현 지금
@interface MyObject : NSoObject {
NSMutableArray *array;
BOOL checkThis;
NSDate *nextDue;
}
을 나는이 있습니다 부울로 표시됩니다. 배열은 할당되지 않았기 때문에 0x0 포인터로 표시됩니다. 하지만 nextDue는 '범위를 벗어남'으로 표시됩니다. 이것이 범위를 벗어나는 이유는 모르지만 다른 변수는 이해할 수 없습니다.
변수가 할당 될 때까지 코드를 추적하면 배열에 올바르게 할당 된 것으로 표시되지만 nextDue는 여전히 범위를 벗어납니다. 흥미롭게도, testDate 변수는 잘 할당되고 디버거는이를 유효한 날짜로 표시합니다.
또 다른 흥미로운 점은 내가 디버깅하는 동안 testDate 변수 위로 마우스를 움직이면 그 정의 이후로 기대할 수있는 'NSDate *'유형으로 표시된다는 것입니다. 그러나 나에게 정의 된 nextDue는 '_NSCFDate *'로 표시됩니다.
내가 주제에 대해 수행 한 모든 문제는 문제가 아니지만 변수를 할당하기 전에 실제로 범위를 벗어났습니다.
그러나 다른 클래스에서는 NSDate와 동일한 정의가 적용됩니다. 값이 할당되기 전에는 nil로 표시됩니다. Arghhh