2011-04-25 3 views
2

슬라이더 애플리케이션을 만들고 있습니다. 이를 위해 다음 코드를 작성했지만 build 및 go 옵션을 누르면 슬라이더 막대가 움직이지 않습니다. .h 및 .m 파일에 오류가 있습니다.iphone 슬라이더 예제

SliderAppDelegate.h

#import <UIKit/UIKit.h> 

@interface SliderAppDelegate : NSObject <UIApplicationDelegate> 
{ 
    UIWindow *window; 
    IBOutlet UISlider *slider; 
    IBOutlet UILabel *labelTxt; 
} 

@property (nonatomic, retain) IBOutlet UIWindow *window; 
@property (nonatomic, retain) UILabel *labelTxt; 

-(IBAction)changeSlider:(id)sender ; 
@end 

SliderAppDelegate.m

#import "SliderAppDelegate.h" 

@implementation SliderAppDelegate 

@synthesize window,labelTxt ; 

- (void)applicationDidFinishLaunching:(UIApplication *)application 
{ 
    [window makeKeyAndVisible]; 
} 

-(IBAction)changeSlider:(id)sender 
{ 
    labelTxt .text= [[NSString alloc] initWithFormat:@" Value %d ", (int)slider.value]; 
} 

- (void)dealloc 
{ 
    [window release]; 
    [label.Txt release]; 
    [super dealloc]; 
} 

@end 

이 코드에 어떤 문제가 있습니까?

+2

어떤 오류가 있습니까? '.text' 속성 전에 공간을 제거하십시오. 코드 태그에 모든 코드를 동봉하십시오. 툴바에 버튼이 있습니다. – FeifanZ

+0

코드 태그가 없으므로 각 줄을 4 칸 들여 쓰기 할 수 있습니다. –

+1

어떤 이벤트가 인터페이스에서 uislider로 설정 되었습니까? – GameLoading

답변

2

에 대한 책을 읽어야한다. 또한 슬라이더의 동작이 "값 변경됨"이벤트에 연결되어 있는지 확인하십시오. 코드를 다음으로 변경할 수도 있습니다

-(IBAction)changeSlider:(id)sender 

{ 

    labelTxt.text= [NSString stringWithFormat:@" Value %d ", (int)slider.value]; 

} 
1

Inspire48의 의견에서 지적한 것처럼 labelTxt .text의 공백을 제거하고 [label.Txt release];[labelTxt release];으로 변경하십시오.

changedSlider 메서드에서 메모리 누수가 발생했습니다. 초기화 된 문자열은 해제되지 않습니다.

그리고 Inspire48는 IBOutlets와 IBActions이 제대로 연결되어 있는지 확인도 코드로 변경하고 제안 @로서 어쩌면 당신은 목적 C.

관련 문제