2011-10-09 7 views
0

두 변수가 1에서 100 사이입니다. 두 개의 단추가 있습니다. 하나의 버튼이 화면에 두 변수를 인쇄하고 하나의 버튼이 두 변수의 합계를 인쇄하기를 원합니다. 어떻게해야합니까? 내 코드는 다음과 같습니다Obj-C에서 두 변수의 합

- (IBAction)addition:(id)sender; 
{ 
    int x = arc4random() %100; 
    int y = arc4random() %100; 
    [label1 setText: [NSString stringWithFormat:@"%i", x]]; 
    [label2 setText: [NSString stringWithFormat:@"%i", y]]; 
} 

- (IBAction)answer:(id)sender; 
{ 
    int z; 
    z = x+y; 
    answer.text = [[NSString alloc] initWithFormat:@"%i", z]; 
} 
+0

무엇이 문제입니까? 해당 코드가 올바른 것 같습니다. –

+0

@ JackHumphries : 그의'-answer :'방법이 누설되고 있다는 사실 외에요? –

+0

예, 저는 왜이 질문에 화면에있는 두 정수의 합계를 표시하는지 궁금합니다. 메모리 관리 질문이 아니 었습니다. –

답변

1

당신은 당신이 원하는 것을 얻을해야 문제가되는 클래스의 xy 인스턴스 변수를 한 경우. 이 변수는 addition:에 호출 한 후 존재하지 않으며 위의 코드도 컴파일되지 않습니다 ... 당신은 또한 xy 이미 클래스의 인스턴스 변수와 버전으로 선언 한 일이없는 한 그대로

addition:은 그저 그저 음영 처리 만하고 있습니다.

intxyaddition:에서 제거하십시오.

+0

이것은 C++이 아니며 "멤버 변수"와 같은 것은 없습니다. 그것들은 Obj-C에서 인스턴스 변수라고 불립니다. –

+1

. 동일한 개념. 혼동을 피하기 위해 업데이트 됨. – nall

1

지금 코드를 구성하는 방법으로 인터페이스 파일 (.h 파일)에 int 값을 선언해야합니다.

@interface Class { 
    int x; 
    int y; 

    UILabel *label1; 
    UILabel *label2; 
    UILabel *answer; 
} 

-(IBAction)... 

그런 다음 .m 파일에, 그냥있는 그대로 (단지 xyint 선언을 제거)을 유지하고 기능과 콘센트를 연결 것 : 그것은이 의사처럼 보일 것 Interface Builder에서.

0

나는 당신이 대답 버튼에 문제가있을 것 같아요 ...하지만 그것도 작동해야합니다 ...하지만 그럼 분명히 작동합니다 아래의 코드를 시도하십시오.

여기서 x & y 변수를 .h 개의 변수로 선언해야합니다. 그리고 버튼 클릭을 선언하지 마십시오.

- (IBAction)answer:(id)sender; 
{ 
    int z; 
    z = x+y; 
    answer.text = [NSString stringWithFormat:@"%i", z]; 
} 

이 질문을 가지고 있지 않은 경우, 다음 난 당신이 직면하고 정확한 문제를 구체적으로 기재하도록 건의 할 것입니다 ..

0

당신의 LABEL1을 보장하고 라벨 2 정수를 유지한다고 가정 당신의 대답 방법이 될 수 값 like

- (IBAction)answer:(id)sender; 
{ 
    [answer setText:[NSString stringWithFormat:@"%i",[[label1 text] intValue] + [[label2 text] intValue]]]; 
}