메소드를 이름으로 동적으로 호출합니다. 이것은 내가 사용하고 코드입니다 :preformSelector를 사용하고 오류가 발생했습니다.
NSString *methodName=[NSString stringWithFormat:@"%@HintButton",stringForPredicate];
SEL s = NSSelectorFromString(methodName);
[self performSelector:s withObject:hItem];
내가 검사와의 값이
AnotherSoundHintButton
이다 나는이 다음 내 코드에서 방법 :
- (void)AnotherSoundHintButton:(HintItem*) hItem {
[self PlaySound:hItem.hint];
}
하지만 내를 실행할 때 app 다음 오류가 발생합니다.
2013-05-29 12:18:39.945 Game[19668:c07] -[SoundViewController AnotherSoundHintButton]: unrecognized selector sent to instance 0x8c60e90
2013-05-29 12:18:39.946 Game[19668:c07] Uncaught exception: -[SoundViewController AnotherSoundHintButton]: unrecognized selector sent to instance 0x8c60e90
2013-05-29 12:18:39.947 Game[19668:c07] Stack trace: (
0 CoreFoundation 0x01c4202e __exceptionPreprocess + 206
1 libobjc.A.dylib 0x019b5e7e objc_exception_throw + 44
2 CoreFoundation 0x01ccd4bd -[NSObject(NSObject) doesNotRecognizeSelector:] + 253
3 CoreFoundation 0x01c31bbc ___forwarding___ + 588
4 CoreFoundation 0x01c3194e _CF_forwarding_prep_0 + 14
5 libobjc.A.dylib 0x019c96b0 -[NSObject performSelector:withObject:] + 70
6 Game 0x00008ab9 -[SoundViewController alertView:clickedButtonAtIndex:] + 969
7 UIKit 0x00ced0bc -[UIAlertView(Private) _buttonClicked:] + 294
8 libobjc.A.dylib 0x019c9705 -[NSObject performSelector:withObject:withObject:] + 77
9 UIKit 0x008fd2c0 -[UIApplication sendAction:to:from:forEvent:] + 96
10 UIKit 0x008fd258 -[UIApplication sendAction:toTarget:fromSender:forEvent:] + 61
11 UIKit 0x009be021 -[UIControl sendAction:to:forEvent:] + 66
12 UIKit 0x009be57f -[UIControl(Internal) _sendActionsForEvents:withEvent:] + 578
13 UIKit 0x009bd6e8 -[UIControl touchesEnded:withEvent:] + 546
14 UIKit 0x0092ccef -[UIWindow _sendTouchesForEvent:] + 846
15 UIKit 0x0092cf02 -[UIWindow sendEvent:] + 273
16 UIKit 0x0090ad4a -[UIApplication sendEvent:] + 436
17 UIKit 0x008fc698 _UIApplicationHandleEvent + 9874
18 GraphicsServices 0x02ab8df9 _PurpleEventCallback + 339
19 GraphicsServices 0x02ab8ad0 PurpleEventCallback + 46
20 CoreFoundation 0x01bb7bf5 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 53
21 CoreFoundation 0x01bb7962 __CFRunLoopDoSource1 + 146
22 CoreFoundation 0x01be8bb6 __CFRunLoopRun + 2118
23 CoreFoundation 0x01be7f44 CFRunLoopRunSpecific + 276
24 CoreFoundation 0x01be7e1b CFRunLoopRunInMode + 123
25 GraphicsServices 0x02ab77e3 GSEventRunModal + 88
26 GraphicsServices 0x02ab7668 GSEventRun + 104
27 UIKit 0x008f9ffc UIApplicationMain + 1211
28 Game 0x00002724 main + 164
29 Game 0x00002635 start + 53
)
'[있는 NSString stringWithFormat을 열을 추가'- 당신은 난 그냥 그것을 밖으로 정렬 대장에게 –