2012-02-29 2 views
1

テキストフィールドに入力されたものをnsmutablearrayに保存する必要があります(これは複数回発生する必要があり、別のオブジェクトとして保存する必要があります) 。しかし、私がはっきりとしていることは機能していません。なぜなら、 "テキスト"は構造体または共用体にないからです。私のコードをheres。どんな入力にも感謝します!テキストフィールドを参照して可変配列に入力する方法

問題は、入力されたClassTextメソッドにあります。

#import "EnteringCoursesViewController.h" 
#import "SelectRotationController.h" 


@implementation EnteringCoursesViewController 

@synthesize classField; 
@synthesize indicatedClass; 
@synthesize labelClassTitle; 
@synthesize selectRotationController; 
@synthesize classesEnteredTable; 

- (IBAction)chooseType { 
    UIActionSheet *typeSheet = [[UIActionSheet alloc] 
           initWithTitle:@"Class types" 
           delegate:self 
           cancelButtonTitle:nil 
           destructiveButtonTitle:nil 
           otherButtonTitles:@"Core Class", @"Elective", nil]; 
    [typeSheet showInView:self.view]; 
    [typeSheet release]; 
} 

- (void)actionSheet:(UIActionSheet *)typeSheet clickedButtonAtIndex:(NSInteger)buttonIndex 
{ 
    if (buttonIndex == 0) { 
     self.indicatedClass = classField.text; 
     NSString *indicatedString = indicatedClass; 
     NSString *greeting = [[NSString alloc] 
           initWithFormat:@"%@ meets 6 times per rotation", indicatedString]; 
     labelClassTitle.text = greeting; 
     labelClassTitle.hidden = NO; 
     [greeting release]; 
     [indicatedClass release]; 
    } 
    else if (buttonIndex == 1) { 
     self.indicatedClass = classField.text; 
     NSString *indicatedString = indicatedClass; 
     NSString *greeting = [[NSString alloc] 
           initWithFormat:@"%@ meets 3 times per rotation", indicatedString]; 
     labelClassTitle.text = greeting; 
     labelClassTitle.hidden = NO; 
     [greeting release]; 
     [indicatedClass release]; 
    } 

} 

- (IBAction)chooseFirstMeeting:(id)sender {  
    SelectRotationController *selectView = [[SelectRotationController alloc] 
               initWithNibName:@"SelectRotationController" 
               bundle:[NSBundle mainBundle]]; 
    [selectView.navigationItem setTitle:@"First Period Day Choose"]; 

    [self.navigationController pushViewController:self.selectRotationController animated:YES]; 
    self.selectRotationController = selectView; 
    [selectView release]; 
} 

- (IBAction)enteredClassText:(id)sender { 
     NSMutableArray *classesEntered = [NSMutableArray arrayWithObject:sender.text]; 
     [classesEntered = [NSMutableArray alloc] init]; 
     [classesEntered release]; 

} 

- (void)didReceiveMemoryWarning { 
    [super didReceiveMemoryWarning]; 

} 

- (void)viewDidLoad { 
    self.navigationItem.hidesBackButton = YES; 
    [super viewDidLoad]; 

} 

- (void)viewDidUnload { 
    [super viewDidUnload]; 
    // Release any retained subviews of the main view. 
    // e.g. self.myOutlet = nil; 
} 


- (void)dealloc { 
    [classField release]; 
    [labelClassTitle release]; 
    [indicatedClass release]; 
    [selectRotationController release]; 
    [classesEnteredTable release]; 
    [super dealloc]; 
} 


@end 

答えて

0

ボタンを押すと、入力された文字列を文字列に変換して配列に保存する必要があります。これはかなり簡単に達成できるはずです。

@interface 

NSMutableArray *theArray; 

@implementation 

- (BOOL)textFieldShouldReturn:(UITextField *)textField { 

NSString *theStringToAdd = textField.text; 
[theArray addObject:theStringToAdd]; 

} 

私はこのコードをテストしていないことに注意してください:ここではいくつかのサンプルコードです!

+0

「[theArray addObject:theStringToAdd]; '? –

+0

誤字をおかけして申し訳ありません、コードは編集されました! – wizH

+0

キーボードを消したい場合は[textField resignFirstResponder]を忘れないでください。 –

0

問題はここにある:

- (IBAction)enteredClassText:(id)sender { 
    NSMutableArray *classesEntered = [NSMutableArray arrayWithObject:sender.text]; 
    [classesEntered = [NSMutableArray alloc] init]; 
    [classesEntered release]; 

}

これを修正するには、あなたは最終的なコードは次のようになります

[(UITextField*)sender text] 

としてそれを参照してみてください。

- (IBAction)enteredClassText:(id)sender { 
    NSMutableArray *classesEntered = [NSMutableArray arrayWithObject:[(UITextField*)sender text]]; 
    [classesEntered = [NSMutableArray alloc] init]; 
    [classesEntered release]; 

}

これは、送信者がUITextViewであると想定するようにプログラムに指示します。

関連する問題