2010-12-14 3 views
1

다음 코드는진동을 버튼 클릭과 연관시키는 방법

-(IBAction)doVibrate{ 
    [self vibrate]; 
} 
-(void)vibrate{ 
    AudioServicesPlaySystemSound(kSystemSoundID_Vibrate); 
} 

doVibrate과 진동은 모두 같은 클래스입니다. 그러나 doVibrate과 관련된 버튼을 클릭하면 장치가 진동하지 않습니다. AudioToolbox/AudioToolbox.hAVFoundation/AVFoundation을 가져 왔습니다.

내가 잘못한 곳을 말해 줄 수 있습니까? 감사

답변

2

IBActions의 형식은 일반적으로 다음의 위치 : 다음과 같은 3 가지 방법이 모두 다르다

- (IBAction)vibrate:(id)sender; 

하는 것으로 :

여기
- (IBAction)vibrate:(id)sender; 
- (IBAction)vibrate; // no sender argument 
- (void)doVibrate; 

내가 할 것 인 것이다. 다음을 수행하여하는 .m 파일에서

- (IBAction)vibrate:(id)sender; 
// - (IBAction)vibrate; comment out this method 

: 당신의 .H 파일에서 다음 메소드를 정의

- (IBAction)vibrate:(id)sender { 
    AudioServicesPlaySystemSound(kSystemSoundID_Vibrate); 
} 

를 이제, 당신이 당신의 .H와하는 .m 파일 및 스위치를 저장할 때 인터페이스 빌더에서 nib/xib 파일로 돌아 가면 "vibrate"가 더 이상 "클래스 이름"에 정의되어 있지 않다는 노란색 경고 메시지가 표시 될 수 있습니다. 다음은 오류를 제거해야하므로 괜찮습니다. 버튼을 Control- 클릭 (또는 마우스 오른쪽 버튼 클릭)하고 컨트롤러 클래스로 드래그하고 호출 할 메서드 이름으로 "진동 :"을 선택합니다 (메서드 이름에 콜론, :이 있음).

+0

응답을 주셔서 감사합니다. 사실 iPod touch에서 진동을 시도했지만 우리는 iPod가 진동하지 않는다는 것을 알고 있으므로 아무런 문제가 없습니다. –

관련 문제