我有ids列表[1,2,3,4],我需要使用此ID进行更新,并且根据我的更新,我需要对显示的列表进行UI更新。 我必须更新列表异步中的每一行,一旦id更新完成,我将为此行进行UI更新
我的方法是制作for循环并为每个id
制作$ http请求 for index in 0...countUserNames {
//print("\(index) times 5 is \(index * 5)")
//UIBUTTON PLAY VIDEO USER
let customButtonPlayVideoUser = UIButton(frame: CGRectMake(145, 32, 64, 64))
let imageCustomUserBtn = UIImage(named: "video-play.png") as UIImage?
customButtonPlayVideoUser.setImage(imageCustomUserBtn, forState: .Normal)
customButtonPlayVideoUser.addTarget(self, action: "CustomUserVideobtnTouched:", forControlEvents:.TouchUpInside)
customViewUser.addSubview(customButtonPlayVideoUser)
/// set tag
customButtonPlayVideoUser.tag = index
}
你怎么看?这应该工作正常吗?
有没有更好的方法呢?
谢谢,
答案 0 :(得分:1)
通过创建匿名函数调用堆栈来防止代码的更好方法。
for(var i = 0 ; i < ids.length; i++){
(function()
{
$http.get("api/update?Id=" + id).then(function (result) {
$scope.nodeUpdate = result;
});
)(ids[i]);
}