UIAlertView 保存 textfield.tex

UIAlertView save textfield.tex

我想重播带有文本字段的 alertView,直到它被取消。文本字段中的文本应保存在 NSMutableArray 中。我尝试了一些东西,但它不起作用。它将通过 myNSMutableArray = ... EXPECTED 标识符表示。我做错了什么?

@synthesize myNSMutableArray;

- (void)viewDidLoad {
    [super viewDidLoad];

    [self alert];
}

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:     (NSInteger)buttonIndex {
    if (buttonIndex == 0) {
        myNSMutableArray = [[NSMutableArray alloc] addObject:[[alertView textFieldAtIndex:0].text]];
        [self alert];
    }
    else{
        NSLog(@"Done");
    }
}

-(void)alert{
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Titel" message:@"Message" delegate:self cancelButtonTitle:@"Next" otherButtonTitles:@"Done", nil];

    alert.alertViewStyle = UIAlertViewStylePlainTextInput;

    [[alert textFieldAtIndex:0] setPlaceholder:@"First"];

    [alert show];
}

您有许多问题和半问题:

删除 @synthesize,您现在应该几乎永远不会使用它。您需要提前创建数组,而不是重复创建并且不初始化它(从而破坏之前的对象)。当您使用圆点表示法时,文本字段用法周围有太多括号。

请记住,如果您在编译某行代码时遇到问题,请将其分成几部分,这样您就可以看到哪一部分确实存在问题,并且您的代码更容易理解。

- (void)viewDidLoad {
    [super viewDidLoad];

    self.myNSMutableArray = [NSMutableArray array];

    [self alert];
}

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
    if (buttonIndex == 0) {
        [self.myNSMutableArray addObject:[alertView textFieldAtIndex:0].text];
        [self alert];
    }
    else{
        NSLog(@"Done");
    }
}

-(void)alert {
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Titel" message:@"Message" delegate:self cancelButtonTitle:@"Next" otherButtonTitles:@"Done", nil];

    alert.alertViewStyle = UIAlertViewStylePlainTextInput;

    [[alert textFieldAtIndex:0] setPlaceholder:@"First"];

    [alert show];
}