Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/102.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何将文本字段添加到NSMutableArray_Ios_Nsmutablearray_Uitextfield_Viewdidload - Fatal编程技术网

Ios 如何将文本字段添加到NSMutableArray

Ios 如何将文本字段添加到NSMutableArray,ios,nsmutablearray,uitextfield,viewdidload,Ios,Nsmutablearray,Uitextfield,Viewdidload,我试图将输入到文本字段中的内容呈现到稍后将显示的nsmutable数组中。 我认为问题出在-voidviewDidLoad方法中,但为了以防万一,我包含了所有代码。问题是,我将离开此页面,然后在选择另一条信息后返回该页面。发生这种情况时,我需要跟踪输入文本字段的每一项内容。谢谢你的帮助 #import "EnteringCoursesViewController.h" #import "SelectRotationController.h" @implementation EnteringC

我试图将输入到文本字段中的内容呈现到稍后将显示的nsmutable数组中。 我认为问题出在-voidviewDidLoad方法中,但为了以防万一,我包含了所有代码。问题是,我将离开此页面,然后在选择另一条信息后返回该页面。发生这种情况时,我需要跟踪输入文本字段的每一项内容。谢谢你的帮助

#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 alloc] init];
    [classesEntered addObject:indicatedClass];
    [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

如果调用viewDidLoad,则指示类尚未初始化,因此为零

如果要通过离开视图来保存,请在viewDidUnload方法中添加addObject调用。当然,您应该检查该值是否为零

我看不到你的变量指示类有任何alloc,但是发布了!?如果调用viewDidUnload,可能是变量不存在

编辑

初始化NSMutableArray,将对象添加到此数组中,然后释放该对象。因此,数据是不存在的。您必须保存数组,以便以后使用内容。关键词:NSUserDefaults

还应检查零值:

- (IBAction)enteredClassText:(id)sender {
    if (indicatedClass != nil) {
       NSMutableArray *classesEntered = [[NSMutableArray alloc] init];
       [classesEntered addObject:indicatedClass];
       [classesEntered release];
    }
}
如果发件人是UILabel,您也可以使用以下代码段:

- (IBAction)enteredClassText:(id)sender {
    if (sender.text != nil) {
       NSMutableArray *classesEntered = [NSMutableArray arrayWithObject:sender.text];
       // TODO: Save your array to NSUserDefaults...
    }
}

那么,这个改变了的代码呢?在另一个方法中使用代码。
- (IBAction)enteredClassText:(id)sender {
    if (sender.text != nil) {
       NSMutableArray *classesEntered = [NSMutableArray arrayWithObject:sender.text];
       // TODO: Save your array to NSUserDefaults...
    }
}