如何将新对象添加到NSMutableArray?

时间:2015-06-04 04:19:58

标签: ios swift

我想知道如何在每个按钮点击中在addObject上添加新项目。我已经在按钮操作中执行了object.count(“某事”)。结果始终是NSMutableArray仍为1.我想要的是每次点击(something)(something)(something) 添加的对象。

现在我得到的结果如下: 当我点击三次时

(something,something,something)

但我想要的结果是这样的

(something,something,something,something,something)

当我点击5次

@IBAction func press(sender: UIButton) {
    var mutar : NSMutableArray = NSMutableArray()
    mutar.addObject("something")
    println(mutar)
}

......等等

这是我的代码

 adb logcat -d -s WeatherServiceSync:D

5 个答案:

答案 0 :(得分:1)

这是因为每次按下按钮时都会分配数组。它总是会在分配时减少到0。

将此行保留在IBAction方法之外并将其添加到 viewDidLoad()

var mutar : NSMutableArray = NSMutableArray()

答案 1 :(得分:0)

您需要将数组添加为类的实例变量。

在课程顶部,输入:

var array = NSMutableArray()

您当前正在初始化一个数组并向其添加一个对象,每次单击该按钮时,每次只有一个对象。

答案 2 :(得分:0)

问题是,当您点击该按钮时,它将创建新的NSMutableArray

创建instance variable

var mutar : NSMutableArray = NSMutableArray()

@IBAction func press(sender: UIButton) {

      mutar.addObject("something")


     println(mutar)
}

答案 3 :(得分:0)

创建一个全局数组并仅从viewDidLoadviewWillAppearviewDidAppear分配一次内存。在每次单击的情况下,您都要将内存分配给该数组,然后将该对象添加到阵列。因此,只需初始化和分配内存一次,然后在按钮点击时添加对象,您将获得预期的结果。

答案 4 :(得分:0)

这是我的目标c代码段:

array = [NSMutableArray arrayWithArray:[[[NSUserDefaults standardUserDefaults] valueForKey:string] componentsSeparatedByString:@","]];
if (array==nil)
    array = [NSMutableArray arrayWithObjects:crctId, nil];
else if (![array containsObject:crctId]){
    flag = YES;
    if(crctId!=nil)
    {
        [array addObject:crctId];
    }
}