2012-10-26 3 views
0

분수의 실제 값을 표시하기 위해 다음 프로그램 코드를 첨부하고 빌드가 성공적이지만 프로그램이 스레드 오류와 충돌합니다. 당신은 제게 말해주십시오, Iam이 실수하는 곳은 어디입니까? 도움이 정말 감사 할 것입니다. (무효) setNumerator - 당신이에 중단 점을 추가하기 때문에 Breakpoint1.1 :
감사
Maverick10스레드 오류 - 스레드 1 : Breakpoint1.1

#import<Foundation/Foundation.h> 

@interface Fraction : NSObject 
{ 
    int numerator; 
    int denominator; // variables to be used 
} 
-(void) print; 
-(void) setNumerator:(int) n; 
-(void) setDenominator:(int) d; 
-(int) numerator; 
-(int) denominator; 
-(double) convertToNum; // new method declared 
@end 

@implementation Fraction 
-(void) print 
{ 
NSLog(@"%i/%i",numerator,denominator); 
} 
-(void) setNumerator :(int) n 
{ 
numerator=n; 
} 
-(void) setDenominator :(int)d 
{ 
denominator=d; 
} 
-(int)numerator 
{ 
return numerator; 
} 
-(int) denominator 
{ 
return denominator; 
} 
-(double) convertToNum 
{ 
if(denominator!=0) // checking for denominator to be non zero 
return (double) numerator/denominator; 
else 
return NAN; 
} 
@end 
//Program Section 
int main(int argc, char*argv[]) 
{ 
    NSAutoreleasePool * pool = [[ NSAutoreleasePool alloc] init]; 

    Fraction * aFraction =[[Fraction alloc] init]; 
    Fraction * bFraction =[[Fraction alloc] init]; 

    [aFraction setNumerator:1]; // setting the numerator for the first fraction.Similarly denominator 
    [aFraction setDenominator:4]; 
    [aFraction print]; 
    NSLog(@"= "); 
    NSLog(@"%g",[aFraction convertToNum]); 

    [bFraction print]; 
      NSLog(@"="); 
    NSLog(@"%g",[bFraction convertToNum]); 

    [aFraction release]; 
    [bFraction release]; 

    [pool drain]; 
    return 0; 
} 
+0

방금 ​​Xcode에서 프로그램을 실행하여 정상적으로 작동했습니다. 어떤 스레드 오류가 발생 했습니까? – yeesterbunny

+0

이 오류가 발생했습니다 - 스레드 1 : 내가 정의하는 줄에 Breakpoint1.1 - (void) setNumerator : (int) n - 메서드. 얻을 출력은 lldb입니다. – Maverick10

+0

실수로 거기에 중단 점을 추가 한 것 같습니다. - (void) setNumerator의 왼쪽을 보면 파란색 사각형 화살표가 보입니까? – yeesterbunny

답변

0

당신이 Thread1를 얻을. 실수로 해당 공간을 클릭하여 중단 점을 추가했을 것입니다.