NSMutablearray不会在Index:0处添加?

时间:2014-08-21 13:13:28

标签: objective-c xcode nsmutablearray

我在线搜索并且不知所措。

我有一个文本字段,当用户输入内容并按“返回”时文本将保存到我的NSMutablearray(userAnswers)

NSMutableArray *userAnswers;

在我的init方法中,我已经分配了数组:

userAnswers = [[NSMutableArray alloc] initWithObjects:@"Test", nil];

还尝试过:

userAnswers = [[NSMutableArray alloc] init];

//当用户按下'返回'在键盘上

- (BOOL)textFieldShouldReturn:(UITextField *)textField {
[answerText resignFirstResponder];

if (levelSelected == 1) {
    [userAnswers insertObject:answerText.text atIndex:0];
    [userAnswers replaceObjectAtIndex:0 withObject:answerText.text];
    //Have tried both of these!
    NSLog(@"SHOULD INSERT INTO ARRAY");//This prints because level one is selected
  }
    NSLog(@"ARRAY: %@", userAnswers); //Just print null
}

我不知道我做错了什么?

感谢您的帮助!

3 个答案:

答案 0 :(得分:1)

看起来您的数组在插入时没有分配,甚至打印出来(如您所评论)。你应该在放任何东西之前分配数组。您的分配必须放在错误的位置,因此在返回阶段,数组为nil,或者您在某个时刻将nil分配给数组引用。数组为零的原因也可能取决于你如何声明ivar。这就是我在此代码示例的基础上所说的。

答案 1 :(得分:0)

我认为在调用函数时未分配数组,因此您可以尝试在viewDidLoad中分配数组: 并且还在.h文件中取消你的数组,而不是在init或viewDidLoad:

答案 2 :(得分:0)

如果您在initWithCoder中使用storyboard allocate数组而不是init。

Initializing a View Controller