需要实现只运行一次
swift dispatch_once
Example of using dispatch_once() in Swift
Using a dispatch_once singleton model in Swift – Stack Overflow
然后出错:
然后用代码:
// // ImageBubbleView.swift // JianDao // // Created by licrifan on 16/2/26. // Copyright © 2016年 licrifan. All rights reserved. // import UIKit class ImageBubbleView: UIView { var resMsg:ResourceMessage static var refreshImgToken:dispatch_once_t = 0 init(frame:CGRect, resourceMessage:ResourceMessage){ self.resMsg = resourceMessage super.init(frame: frame) 。。。 ImageBubbleView.doOnceUpdateMessageCell(self.resMsg) 。。。 } } class func doOnceUpdateMessageCell(resMsg:ResourceMessage) { print("doOnceUpdateMessageCell ") dispatch_once(&self.refreshImgToken) { delayDispatchInBackgroundThread(0.2, thingsTodo: { print("resMsg.name=\(resMsg.name), self.refreshImgToken=\(self.refreshImgToken)") 。。。 }) } } } |
效果是:
的确只执行了一次:
之前的图片加载完毕后,异常:
然后只需要刷新一次即可:
不过,此处是希望每个图片都会执行一次的,而此处的ImageBubbleView这个类,全局只能执行一次,没法满足要求,最后改为自己使用bool变量来实现对应的效果:
转载请注明:在路上 » 【已解决】swift只运行一次dispatch_once