2011-09-28 4 views
0

기본적으로이 코드에는 내가 수행하고자하는 몇 가지 사항이 있습니다. 1) 그 첫 번째에서 나는 done을 누른 후에 Text Field를 닫고 싶습니다. 그러나 그렇게하지는 않습니다. (다른 포럼에서이 코드를 찾았습니다). 2) 첫 번째 버튼을 눌렀을 때 버튼을 놓을 때 저장 될 시간을 보내고 싶습니다. 3) 그 버튼을 놓으면 나중에 다른 계산과 함께 두 시간 사이의 시간을 계산하고 싶습니다.커플 Obj C 오류 (오류 포함) 문제

주로 여기에 오는 문제는 NSTimeInterval의 오류입니다. NSTimeInterval이 NSTimeInterval 유형과 호환되지 않는다고 계속 알려줍니다. 그래서 더블은 더블과 호환이되지 않습니까 ??? (나는 또한 .H에 NSTimeInterval * timePassed 그것을 시도하고 단지에 = timePassed을 설정하려고하고 그 중 하나가 작동하지 않는했다. 비슷한 오류가 발생합니다. 또한

#import "MphViewController.h" 

@implementation MphViewController 
@synthesize speed, distance; 

- (BOOL)textFieldShouldReturn:(UITextField *)textField{ 
    [textField resignFirstResponder]; 
    return YES; 
} 

-(IBAction)triggerDown:(id)sender{ 

    timeStart = [NSDate date]; 

} 

-(IBAction)triggerUp:(id)sender{ 
    NSInteger *dist; 
    NSString *display; 
    NSTimeInterval *timePassed = [timeStart timeIntervalSinceNow]; 
    if ([distance.text length]== 0) { 
     display = @"Please enter a distance"; 
    } 
    else{ 
     dist = atoi(distance.text); 
     display = [[NSString alloc] initWithFormat:@"%d MPH",dist]; 
    } 
    speed.text = display; 


    [display release]; 
} 

당신이 한 눈에 기회가 있다면 그 진술이 작동 할 지 확신이 서지 않습니다. (거리를 입력 한 후에도 여전히 숫자 패드를 제거 할 수 없습니다.) ID는 화면에 표시되도록 계산 된 후 mph를 전달하려고합니다. 매우 복잡한 구문 분석이 obj c에서 수행되는 것과 혼동을줍니다. 어쨌든 모든 도움에 감사드립니다.

textField 부분은 할당 된 내 textField가 거리입니다. Bool이 거리를두고 다르게 작성되어야합니까? 아니면 그것이 바로 su와 같은 방식인가? 쓰여지기로 했어?

답변

1

기본 유형을 필요하지 않은 포인터로 표시합니다. NSIntegerNSTimerInterval 선언에서 별표 (*)를 제거하십시오. 는 IF 검사는 잘 보이지만 대신 atoi의는 사용

dist = [distance.text integerValue]; 

편집 : 공지 사항 메모리 관리 문제의 커플.

1. 날짜를 올바르게 유지/해제 한 다음 나중에 dealloc에서 해제해야합니다.

-(IBAction)triggerDown:(id)sender{ 
    [timeStart release]; 
    timeStart = [[NSDate alloc] init]; 
} 

2. if 문은 충돌을 일으키지 않지만 잘못된 메모리 관리 인 NSString 리터럴을 릴리스하려고합니다. 자동 완성 문자열을 사용하여 제거하십시오. [display release];

... 
else{ 
     dist = [distance.text integerValue]; 
     display = [NSString stringWithFormat:@"%d MPH",dist]; 
    } 
    speed.text = display; 
} 
+0

감사합니다. 완벽하게 작동했습니다. 텍스트 필드에 무엇이 잘못 될 수 있는지에 대해 알고 싶으십니까? – steven

+0

'textFieldShouldReturn :'에 대해 묻고 있습니까? 그 코드가 정확하기 때문입니다. – Joe

+0

또한 메모리 관리 문제가 생기면 timeStart를 호출해야합니다. [timeStart release];를 호출하고 'timeStart = [[NSDate alloc] init];' – Joe