0

私はiOS開発にかなり慣れていません。そして、本の第4章のチュートリアル演習「iOS5開発の開始」に続いて、コードでいくつかのコンパイルエラーが発生しました。

ヘッダーコードの.hファイルは次のようになります

   #import <UIKit/UIKit.h>

   @interface BIDViewController : UIViewController

   @property (strong, nonatomic) IBOutlet UITextField *namefIELD;

   @property (strong, nonatomic) IBOutlet UITextField *numberField;
   @property (strong, nonatomic) IBOutlet UILabel *sliderLabel;
   @property (strong, nonatomic) IBOutlet UISegmentedControl *leftSwitch;
   @property (strong, nonatomic) IBOutlet UISegmentedControl *rightSwitch;
   @property (strong, nonatomic) IBOutlet UIButton *doSomethingButton;

   -(IBAction)textFieldDoneEditing:(id)sender;
   //to initialize the 'done' button when editing to confirm you have finished editing/

   -(IBAction) backgroundTap:(id)sender;
  - (IBAction)sliderChanged:(id)sender;
  - (IBAction)switchChanged:(id)sender;
  - (IBAction)toggleControls:(id)sender;
  - (IBAction)buttonPressed:(id)sender;
  @end

これが私の.mコードで、「「UISegmentedControl」の表示された@interfaceがセレクター「setOn:animated;」を宣言していません」というエラーに直面しています。

  @synthesize leftSwitch;
  @synthesize rightSwitch;


 - (IBAction)switchChanged:(id)sender {
 UISwitch *whichSwitch = (UISwitch *)sender;
 BOOL setting = whichSwitch.isOn;
 [leftSwitch setOn: setting animated: YES];  //the error lies here/
 [rightSwitch setO: setting animated: YES];  //the error lies here/
 }

 - (IBAction)toggleControls:(id)sender {
 }

 - (IBAction)buttonPressed:(id)sender {
 }
 @end

エラーステートメントは、「'UISegmentedControl'の表示された@interfaceがセレクター'setOn:animated;'を宣言していません。

plsの助け、それは高く評価され、投票されます:)

@PhilipMills ...これが私が話していることです。セグメント化されたコントロールオブジェクトの左側または右側をクリックするとすぐに、委任されたヘッダーコードにブレークポイントが自動的に作成されます。

 #import <UIKit/UIKit.h>

 #import "BIDAppDelegate.h"

 int main(int argc, char *argv[])
 {
       @autoreleasepool {
    return UIApplicationMain(argc, argv, nil, NSStringFromClass([BIDAppDelegate         class])); //the breakpoint appears here.
       }
 }
4

1 に答える 1

1

AUISwitchにはsetOn:animated:メソッドがありますが、UISegmentedControlありません。あなたがオブジェクトを割り当てたと思いますがleftSwitchrightSwitchそれはあなたが意図した種類(またはチュートリアルが意図したもの)ではありません。

于 2012-09-26T11:51:38.757 に答える