Ios 数组中的UITextfield文本不会更改标签';将文本放入另一个数组中

Ios 数组中的UITextfield文本不会更改标签';将文本放入另一个数组中,ios,objective-c,arrays,uitextfield,Ios,Objective C,Arrays,Uitextfield,请帮忙。我做错了什么?textfield.text进入一个数组,并假定更改属于另一个数组的标签 我有多个文本字段。我试图将每个字段的文本保存到数组中,然后将alpha设置为0。然后,我有等量的标签要更改为textfield的文本。我尝试过使用可变数组和不可变数组。我总是出错 我尝试了多种方法,但我错过的肯定是一些愚蠢的东西。为了在这里发布,我已经大大减少了这些数组 _namesText = [NSMutableArray arrayWithObjects:_nameLabel1.text, _n

请帮忙。我做错了什么?textfield.text进入一个数组,并假定更改属于另一个数组的标签

我有多个文本字段。我试图将每个字段的文本保存到数组中,然后将alpha设置为0。然后,我有等量的标签要更改为textfield的文本。我尝试过使用可变数组和不可变数组。我总是出错

我尝试了多种方法,但我错过的肯定是一些愚蠢的东西。为了在这里发布,我已经大大减少了这些数组

_namesText = [NSMutableArray arrayWithObjects:_nameLabel1.text, _nameLabel2.text, nil];

_names = [NSMutableArray arrayWithObjects:_nameLabel1, _nameLabel2, nil];

_nameInputs = [NSMutableArray arrayWithObjects:_p1NameTextField, _p2NameTextField, nil];

_playerNameText = [NSArray arrayWithObjects:_p1NameTextField.text, _p2NameTextField.text, nil];

    enter code here
- (IBAction)enterNamesButton:(id)sender {
//These don't work.

    for (int i = 0; i < _numberOfPlayers; i++) {
        [_names[i] setAlpha:1];
        NSString *tempString = [[NSString alloc]initWithString:[_nameInputs[i] text]];
        [_lastTry addObject:tempString];
    }
//Then tried this. This is after trying for 2.5 hours and different coding.
    for (int i = 0; i < _numberOfPlayers; i++) {
        _namesText[i] = _lastTry[i];
        UILabel *cell = [[UILabel alloc] init];
        cell.text = _lastTry[i];
        //[[_namesText[i] textLabel] text] = @"Idiot";
        _namesText[i] = cell;
        NSLog(@"%@", _namesText[i]);

// This works (but bad practice) and I want to loop through arrays that each UI element belongs to instead of typing it all out.

//    _nameLabel1.text = _p1NameTextField.text;

//    _nameLabel2.text = _p2NameTextField.text;
(namesText=[NSMutableArray arrayWithObjects:_nameLabel1.text,_nameLabel2.text,nil];
_names=[NSMutableArray数组及其对象:_nameLabel1,_nameLabel2,nil];
_nameInputs=[NSMutableArray arrayWithObjects:_p1NameTextField,_p2NameTextField,nil];
_playerNameText=[NSArray数组,其对象:_p1NameTextField.text,_p2NameTextField.text,无];
在这里输入代码
-(iAction)输入名称按钮:(id)发件人{
//这些不起作用。
对于(int i=0;i<\u玩家数量;i++){
[_name[i]setAlpha:1];
NSString*tempString=[[NSString alloc]initWithString:[[u nameInputs[i]text]];
[\u lastry addObject:tempString];
}
//然后尝试了这个。这是在尝试了2.5个小时和不同的编码之后。
对于(int i=0;i<\u玩家数量;i++){
_namesText[i]=\u lastry[i];
UILabel*单元格=[[UILabel alloc]init];
cell.text=_lastTry[i];
//[[u namesText[i]textlab]text]=@“傻瓜”;
_namesText[i]=单元格;
NSLog(@“%@”,_namesText[i]);
//这是可行的(但不好的做法),我希望循环遍历每个UI元素所属的数组,而不是全部输入。
//_nameLabel1.text=_p1NameTextField.text;
//_nameLabel2.text=_p2NameTextField.text;

我希望这能奏效,但不行!!!!

我会这样做:

for (int i = 0; i < _numberOfPlayers; i++) {
        _namesText[i] = _lastTry[i];
}
for(int i=0;i<\u numberOfPlayers;i++){
_namesText[i]=\u lastry[i];
}

我看不出这为什么行不通……是吗?

假设以下情况:

数组_fromTextField是要从中复制并将Alpha设置为0的文本字段 数组_toLabelField是希望文本显示在其中的标签 数组_toStoreStrings是保存所有字符串的地方,可能以后用

NSMutableArray *_fromTextField = [[NSMutableArray alloc] init]; // Put the Text Fields in Here
NSMutableArray *_toLabelField = [[NSMutableArray alloc] init]; // Put the Labels in Here
NSMutableArray *_toStoreStrings = [[NSMutableArray alloc] init]; 

int count = 0;
int overRun = [_toLabelField count];

for (UITextField *tf in _fromTextField)
{
  tf.alpha = 0;
  NSString *tempString = [[NSString alloc]initWithString:tf.text];
  [_toStoreStrings addObject:tempString];
  if (count < overRun) // Check just in case Array sizes not same
  {
    UILabel *lb = [_toLabelField ObjectAtIndex:count];
    lb.text = tempString;
  }
  else
    break;

  count++;
}
NSMutableArray*\u fromTextField=[[NSMutableArray alloc]init];//将文本字段放在这里
NSMUTABLEARRY*_toLabelField=[[NSMUTABLEARRY alloc]init];//将标签放在这里
NSMUTABLEARRY*_ToStoreString=[[NSMUTABLEARRY alloc]init];
整数计数=0;
整数溢出=[[u toLabelField count];
for(UITextField*tf in_fromTextField)
{
tf.alpha=0;
NSString*tempString=[[NSString alloc]initWithString:tf.text];
[\u toStoreStrings addObject:tempString];
if(count

您的代码面临的问题是您有一个NSObject数组。编译器不知道它们是UITextField或UILabel,除非您使用(type_cast*)强制转换它们或者将一个新类型的变量指向它们。因此,您会看到崩溃。

如果您的代码生成错误,请说明它们是什么。因为我不确定如何读取这段代码,因为它包含几种不同的方法,因此它是不完整的(在哪里定义了
\u lastTry
),我不知道你在每种方法中遇到了什么错误。不需要给我-1。这是我第一次使用这个网站,并且仍然试图找出如何使用正确的格式发布。_lastry来自于早些时候的其他内容。这是一个可变数组,它是alloc,并为(int I=0;I<_numberOfPlayers;I++)初始化的[\u lastry addObject:[u playerNameText[i]];[u namesText[i]=\u lastry[i]}我不知道如何在不发布注释的情况下使用enter按钮,因为它会在代码中导致一个绿色断点。-[\u nsarray objectAtIndex:]:索引0超出空数组“”的边界,但数组不是空的!???!哦,似乎您在初始化中有问题…在viewDidLoad'\u lastTry=[[NSMutableArray alloc]init]中使用此选项;“…应该可以解决这个问题。你可以通过按shift键和enter键在注释中添加新行;)我已经在故事板上设置了我的标签,它们被设置为输出。我将它们放在可变数组和常规数组中,但没有任何更改。我不想创建新标签。而且我使用的文本字段和标签超过5个。所有内容都是可更改的已分配给数组。_nameLabel1.text=_p1NameTextField.text;是我希望通过循环执行的操作:_names[I]=_playerNameText[I];nameLabel1.text位于_names[]中的索引0处。\u p1NameTextField.text位于_playerNameText中的索引0处;(我现在很想使用setText:method,分号显然正在取代我在英语中的句号。lol)。好的,此代码已停止崩溃,但现在我需要让我的标签再次出现。K.标签再次出现。我在if块结束之前添加了lb.alpha=1。现在我只是想看看代码如何将alpha消息发送到每个标签。我仍在尝试学习Obj-C的快速枚举,但我可以告诉您的代码是怎么做的我想我学到了比我所知道的更多的快速枚举。这段代码有没有一个常规的枚举版本使用for(I,I)