私は非常に単純なサブクラスを持っていますUIViewController
:
@interface RoastChickenViewController : UIViewController {
IBOutlet UISlider *weightSlider;
}
@property (nonatomic,retain) UILabel *cookingTimeLabel;
- (void) weightValueHasChanged:(id)sender;
@end
私のxibファイルは、RoastChickenViewController
ファイルの所有者タイプであるように設定されており、weightSlider
が接続されており、「valueChanged」アクションがに接続されていweightValuHasChanged:
ます。
スライダー(シミュレーターまたはデバイス)に触れるとすぐに問題が発生します。
2010-08-21 20:26:07.688 CookIt1[26682:207] -[NSCFString weightValueHasChanged:]: unrecognized selector sent to instance 0x59215e0
2010-08-21 20:26:07.690 CookIt1[26682:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSCFString weightValueHasChanged:]: unrecognized selector sent to instance 0x59215e0'
*** Call stack at first throw:
(
0 CoreFoundation 0x02395919 __exceptionPreprocess + 185
1 libobjc.A.dylib 0x024e35de objc_exception_throw + 47
2 CoreFoundation 0x0239742b -[NSObject(NSObject) doesNotRecognizeSelector:] + 187
3 CoreFoundation 0x02307116 ___forwarding___ + 966
4 CoreFoundation 0x02306cd2 _CF_forwarding_prep_0 + 50
5 UIKit 0x002b9e14 -[UIApplication sendAction:to:from:forEvent:] + 119
6 UIKit 0x003436c8 -[UIControl sendAction:to:forEvent:] + 67
7 UIKit 0x00345b4a -[UIControl(Internal) _sendActionsForEvents:withEvent:] + 527
8 UIKit 0x003c23ac -[UISlider beginTrackingWithTouch:withEvent:] + 731
少し歴史がありますが、実際には、UIViewを直接サブクラス化して使用してこれを機能させました。UIViewからUIViewControllerに変換することで、なんとかそれを破ることができました。これは、このような単純な動作を実装するためのより自然な方法だと思います。
明らかに私が欠けているものがあるので、私が適用できるある種のチェックリストはありますか?