如何将字符串转换为可变数组并在输入另一个字符串时存储前一个字符串

时间:2015-09-07 17:41:15

标签: ios objective-c arrays

这个项目的目标是让用户输入两个单独的字符串并能够连接在一起。在控制台中,您可以看到输入的所有concat历史记录用户。

例如,第一次,用户输入“app”和“le”,然后单击“合并”按钮,然后控制台存储“apple”。

然后,用户输入“123”和“45”,然后在控制台中显示用户输入“apple”和“12345”。

我现在的问题是,我无法在我的可变数组中存储任何用户输入。

如果有人可以提供帮助我感激不尽!

这是我的代码:

import "ViewController.h"

@interface ViewController ()
@property (weak, nonatomic) IBOutlet UITextField *myString1;
@property (weak, nonatomic) IBOutlet UITextField *myString2;
@property (weak, nonatomic) IBOutlet UILabel *myLabel;
@property (weak, nonatomic) IBOutlet UILabel *combinedString;
@property (nonatomic, strong) NSMutableArray *arrayhere;
@property int arrayCount;

- (IBAction)buttonPressed:(id)sender {
    NSString *userInput1 = self.myString1.text;
    NSString *userInput2 = self.myString2.text;
    NSString *result = [NSString stringWithFormat: @"%@%@", userInput1, userInput2];
    self.combinedString.text = result;
    [self.arrayhere insertObject:result atIndex:self.arrayCount];
    self.arrayCount++;
    NSLog(@"list of portmanteaus is %@ ", self.arrayhere);
}

2 个答案:

答案 0 :(得分:0)

在viewDidLoad中:您需要添加:

self.arrayhere = [[NSMutableArray alloc] init];

然后在你的buttonPressed动作中,你需要替换:

[self.arrayhere insertObject:result atIndex:self.arrayCount];

使用:

[self.arrayhere addObject:result];

这将自动将该对象添加到数组的末尾,不需要具有数组计数的属性,因为@rmaddy声明它已经是NSMutableArray的属性。

因此,您也可以删除此行:

self.arrayCount++;

答案 1 :(得分:0)

你应该试试这个,

 import "ViewController.h"

@interface ViewController ()
@property (weak, nonatomic) IBOutlet UITextField *myString1;
@property (weak, nonatomic) IBOutlet UITextField *myString2;
@property (weak, nonatomic) IBOutlet UILabel *myLabel;
@property (weak, nonatomic) IBOutlet UILabel *combinedString;
@property (nonatomic, strong) NSMutableArray *arrayhere;
@property int arrayCount;

- ( void )viewDidLoad {
  [super viewDidLoad];

  arrayhere = [NSMutableArray new];

}

- (IBAction)buttonPressed:(id)sender {
     NSString *userInput1 = self.myString1.text;
     NSString *userInput2 = self.myString2.text;
     NSString *result = [NSString stringWithFormat: @"%@%@", userInput1, userInput2];
    [arrayhere addObject:result];
     NSLog(@"list of portmanteaus is %@ ", self.arrayhere);
}