我在线搜索并且不知所措。
我有一个文本字段,当用户输入内容并按“返回”时文本将保存到我的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
}
我不知道我做错了什么?
感谢您的帮助!
答案 0 :(得分:1)
看起来您的数组在插入时没有分配,甚至打印出来(如您所评论)。你应该在放任何东西之前分配数组。您的分配必须放在错误的位置,因此在返回阶段,数组为nil,或者您在某个时刻将nil分配给数组引用。数组为零的原因也可能取决于你如何声明ivar。这就是我在此代码示例的基础上所说的。
答案 1 :(得分:0)
我认为在调用函数时未分配数组,因此您可以尝试在viewDidLoad中分配数组: 并且还在.h文件中取消你的数组,而不是在init或viewDidLoad:
答案 2 :(得分:0)
如果您在initWithCoder中使用storyboard allocate数组而不是init。