我想知道如何在每个按钮点击中在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
答案 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)
创建一个全局数组并仅从viewDidLoad
或viewWillAppear
或viewDidAppear
分配一次内存。在每次单击的情况下,您都要将内存分配给该数组,然后将该对象添加到阵列。因此,只需初始化和分配内存一次,然后在按钮点击时添加对象,您将获得预期的结果。
答案 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];
}
}