- Jul 16 Tue 2019 18:02
[Swift] 忘記加rawValue 的....保護措拖
- Apr 11 Thu 2019 17:43
[Swift] 會call很多次,但只要最後一次
只跑一次的Globa function: /// Run once after delay if no be called /// /// - Parameters: /// - delay: delay time /// - saveCurrent: should put it to 'property scope' /// - getCurrent: should pass 'weak' self property /// - once: do once closure func runOnce(delay: TimeInterval, saveCurrent: inout DispatchTime?, getCurrent: @autoclosure @escaping () -> DispatchTime?, once: @escaping () -> Void) { let begin: DispatchTime = DispatchTime.now() saveCurrent = begin DispatchQueue.main.asyncAfter(deadline: begin + delay) { guard let current = getCurrent(), current == begin else { print("Ignore because still be called") return } print("Run once") once() } }
Caller端用法:
- Mar 25 Mon 2019 10:14
[Swift] 泛型抽象工廠
protocol OrderPickUpViewModelFactoryProtocol { } extension OrderPickUpViewModelFactoryProtocol { fileprivate typealias TResult = OrderPickUpCellViewModelUpProtocol fileprivate func createRows(info: OrderDetailModel.ShuttleInfo, _: TDesc.Type, _: TLocation.Type, _: TSubDetail.Type, _: TTitle.Type) -> [TResult] where TDesc: OrderPickUpDetailDescCellViewModelProtocol, TLocation: OrderPickUpDetaiLocationCellViewModelProtocol, TSubDetail: OrderPickUpDetailSubDetailCellViewModelProtocol, TTitle: OrderPickUpDetailTitleCellViewModelProtocol { var rows: [TResult?] = [] rows.append(TTitle(titleText: "AAA"))) rows.append(TLocation(titleText: "BBB")) // ..... return rows.dropNil } }
1.在工廠extension 內預設實作商業邏輯
- Mar 08 Fri 2019 17:58
[Swift] TruncatingTail不見
Label 設定AttributedText後,需重新指定LineBreakMode
titleLabel.attributedText = NSMutableAttributedString(string: viewModel.model.title, attributes: titleAttributes)
- Mar 08 Fri 2019 14:47
[iOS] 解決UI / Unit test compile error