Commit 6591ae36 authored by CZ1004's avatar CZ1004

【优化】修复BUG

parent 46bd273a
...@@ -41,7 +41,7 @@ class AdvTipDeleteView : UIView { ...@@ -41,7 +41,7 @@ class AdvTipDeleteView : UIView {
var freeDeleteCount : Int = 0 var freeDeleteCount : Int = 0
var dataSource : [AssetModel]? var dataSource : [AssetModel] = []
var tipDeleteModel : AdvTipModel = AdvTipModel(titleText: "", detailTitleText: "", showLessButton: false, deleteMoreText: "", deleteLessText: "") var tipDeleteModel : AdvTipModel = AdvTipModel(titleText: "", detailTitleText: "", showLessButton: false, deleteMoreText: "", deleteLessText: "")
...@@ -198,8 +198,8 @@ extension AdvTipDeleteView : UICollectionViewDataSource, UICollectionViewDelegat ...@@ -198,8 +198,8 @@ extension AdvTipDeleteView : UICollectionViewDataSource, UICollectionViewDelegat
func getOtherInfoByType(type : PhotsFileType) { func getOtherInfoByType(type : PhotsFileType) {
// 首先获取第一个button显示的内容 // 首先获取第一个button显示的内容
let photosCount = self.dataSource!.count > 25 ? 25 : self.dataSource?.count let photosCount = self.dataSource.count > 25 ? 25 : self.dataSource.count
let deleteButtonTitle = "Delete \(photosCount ?? 0) \(type.rawValue)" let deleteButtonTitle = "Delete \(photosCount) \(type.rawValue)"
var deleteLessText = "" var deleteLessText = ""
if type == .videos || type == .SimilarVideos { if type == .videos || type == .SimilarVideos {
...@@ -271,17 +271,23 @@ extension AdvTipDeleteView : UICollectionViewDataSource, UICollectionViewDelegat ...@@ -271,17 +271,23 @@ extension AdvTipDeleteView : UICollectionViewDataSource, UICollectionViewDelegat
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return dataSource!.count
return dataSource.count > 25 ? 25 : dataSource.count
} }
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: ImageCell.reuseIdentifier, for: indexPath) as! ImageCell let cell = collectionView.dequeueReusableCell(withReuseIdentifier: ImageCell.reuseIdentifier, for: indexPath) as! ImageCell
// 这里重新写一个异步方法去加载图片 // // 这里重新写一个异步方法去加载图片
Task { // Task {
if let image = await PhotoAndVideoMananger.mananger.getImageByIdent(identifier: self.dataSource![indexPath.item].localIdentifier) { // if let image = await PhotoAndVideoMananger.mananger.getImageByIdent(identifier: self.dataSource![indexPath.item].localIdentifier) {
// cell.imageView.image = image
// }
// }
// 最多25张使用同步
if let image = PhotoAndVideoMananger.mananger.getImageFromAssetID(id: self.dataSource[indexPath.item].localIdentifier) {
cell.imageView.image = image cell.imageView.image = image
} }
}
return cell return cell
} }
...@@ -299,7 +305,7 @@ extension AdvTipDeleteView : UICollectionViewDataSource, UICollectionViewDelegat ...@@ -299,7 +305,7 @@ extension AdvTipDeleteView : UICollectionViewDataSource, UICollectionViewDelegat
} }
@objc func deleteMoreButtonSelect() { @objc func deleteMoreButtonSelect() {
let photosCount = (self.dataSource!.count > 25 ? 25 : self.dataSource?.count)! let photosCount = self.dataSource.count > 25 ? 25 : self.dataSource.count
deleteButtonClickCallback(true,photosCount) deleteButtonClickCallback(true,photosCount)
self.removeFromSuperview() self.removeFromSuperview()
......
...@@ -56,25 +56,6 @@ class HomeInfoViewController:BaseViewController { ...@@ -56,25 +56,6 @@ class HomeInfoViewController:BaseViewController {
} }
} }
func showCommentPage(){
// 首先是免费三次机会用完之后,第四次点击广告,在结果页点击棒极了(删除成功,且loading页面消失)
if AdvManager.shared.currentTimes == 0 {
// 判断当天有没有被触发过
if let isCommentInCurrentDay = UserDefaults.standard.object(forKey: "showCommentInCurrentDay"){
let temp : Bool = isCommentInCurrentDay as! Bool
if !temp {
// 如果当天没有被显示过
CustomRate().show()
}else {
// 如果当天显示过了
UserDefaults.standard.set(true, forKey: "showCommentInCurrentDay")
}
}else{
CustomRate().show()
}
}
}
func deleteOp(imgs : [AssetModel],isAfterAdv:Bool){ func deleteOp(imgs : [AssetModel],isAfterAdv:Bool){
var tempStringArray : [String] = [] var tempStringArray : [String] = []
...@@ -92,7 +73,7 @@ class HomeInfoViewController:BaseViewController { ...@@ -92,7 +73,7 @@ class HomeInfoViewController:BaseViewController {
PMLoadingHUD.share.disMiss() PMLoadingHUD.share.disMiss()
// 结束之后是否弹出评价页面 // 结束之后是否弹出评价页面
SystemCommentManager.showCommentPage()
// 更新免费次数 // 更新免费次数
if isAfterAdv == false { if isAfterAdv == false {
...@@ -153,7 +134,8 @@ class HomeInfoViewController:BaseViewController { ...@@ -153,7 +134,8 @@ class HomeInfoViewController:BaseViewController {
if HomePayModel.share.isNoAd == false { if HomePayModel.share.isNoAd == false {
// 没有订阅 // 没有订阅
let view : AdvTipDeleteView = AdvTipDeleteView(frame: self.view.bounds) let view : AdvTipDeleteView = AdvTipDeleteView(frame: self.view.bounds)
view.dataSource = array as? [AssetModel]
view.dataSource = array as! [AssetModel]
// 获取当前免费次数 // 获取当前免费次数
let freeCount = AdvManager.shared.defaultFreeTimes let freeCount = AdvManager.shared.defaultFreeTimes
......
...@@ -461,6 +461,9 @@ extension HomePhotosDetailViewController:WaterfallMutiSectionDelegate,UICollecti ...@@ -461,6 +461,9 @@ extension HomePhotosDetailViewController:WaterfallMutiSectionDelegate,UICollecti
@objc func deleteButtonAction(){ @objc func deleteButtonAction(){
if selectedModel.count <= 0 {
return
}
// 首先看是否订阅 // 首先看是否订阅
if HomePayModel.share.isNoAd == false { if HomePayModel.share.isNoAd == false {
...@@ -553,6 +556,7 @@ extension HomePhotosDetailViewController:WaterfallMutiSectionDelegate,UICollecti ...@@ -553,6 +556,7 @@ extension HomePhotosDetailViewController:WaterfallMutiSectionDelegate,UICollecti
AdvManager.shared.showInterstitialAd(vc: self) AdvManager.shared.showInterstitialAd(vc: self)
} }
func deleteAction(count:Int,isAfterAdv:Bool){ func deleteAction(count:Int,isAfterAdv:Bool){
// 删除当前选择 // 删除当前选择
let tempArray = Array(self.selectedModel.prefix(count)) let tempArray = Array(self.selectedModel.prefix(count))
self.selectedModel = tempArray self.selectedModel = tempArray
...@@ -568,6 +572,7 @@ extension HomePhotosDetailViewController:WaterfallMutiSectionDelegate,UICollecti ...@@ -568,6 +572,7 @@ extension HomePhotosDetailViewController:WaterfallMutiSectionDelegate,UICollecti
print("删除文件成功") print("删除文件成功")
DispatchQueue.main.asyncAfter(deadline: .now() + 1.0) { DispatchQueue.main.asyncAfter(deadline: .now() + 1.0) {
PMLoadingHUD.share.disMiss() PMLoadingHUD.share.disMiss()
SystemCommentManager.showCommentPage()
if isAfterAdv == false { if isAfterAdv == false {
self.updateFreeTimes() self.updateFreeTimes()
} }
......
...@@ -369,6 +369,10 @@ extension HomeVideoDetailController:WaterfallMutiSectionDelegate,UICollectionVie ...@@ -369,6 +369,10 @@ extension HomeVideoDetailController:WaterfallMutiSectionDelegate,UICollectionVie
@objc func deleteButtonAction(){ @objc func deleteButtonAction(){
if selectedModel.count <= 0 {
return
}
// 首先看是否订阅 // 首先看是否订阅
if HomePayModel.share.isNoAd == false { if HomePayModel.share.isNoAd == false {
// 没有订阅 // 没有订阅
...@@ -482,6 +486,7 @@ extension HomeVideoDetailController:WaterfallMutiSectionDelegate,UICollectionVie ...@@ -482,6 +486,7 @@ extension HomeVideoDetailController:WaterfallMutiSectionDelegate,UICollectionVie
PMLoadingHUD.share.disMiss() PMLoadingHUD.share.disMiss()
print("删除文件成功") print("删除文件成功")
// 如果是看广告删除的,且还有免费次数 // 如果是看广告删除的,且还有免费次数
SystemCommentManager.showCommentPage()
if isAfterAdv == false { if isAfterAdv == false {
self.updateFreeTimes() self.updateFreeTimes()
......
...@@ -238,27 +238,27 @@ class PhotoDataManager { ...@@ -238,27 +238,27 @@ class PhotoDataManager {
Print("处理截图结束") Print("处理截图结束")
}) })
} }
// 相似视频 // // 相似视频
Print("正在处理相似视频") // Print("正在处理相似视频")
PhotoAndVideoMananger.mananger.fetXSVideo { array in // PhotoAndVideoMananger.mananger.fetXSVideo { array in
PhotoSimilarityFinder.processSimilarVideoGroups(videoGroups: array) {ids in // PhotoSimilarityFinder.processSimilarVideoGroups(videoGroups: array) {ids in
//
var dataArray : [AssetModel] = [] // var dataArray : [AssetModel] = []
for item in ids { // for item in ids {
dataArray = dataArray + item // dataArray = dataArray + item
} // }
PhotoAndVideoMananger.mananger.calculateTotalSize(of: PhotoAndVideoMananger.mananger.getPHAsssetwithIDs(ids: dataArray)!,progress: { fileSiez, index in // PhotoAndVideoMananger.mananger.calculateTotalSize(of: PhotoAndVideoMananger.mananger.getPHAsssetwithIDs(ids: dataArray)!,progress: { fileSiez, index in
// 不做处理 // // 不做处理
}, completion: { fileSize,index in // }, completion: { fileSize,index in
model6.assets = ids // model6.assets = ids
model6.allFileSize = Double(fileSize) // model6.allFileSize = Double(fileSize)
PhotoDataManager.manager.saveToFileSystem(model: allModel) // PhotoDataManager.manager.saveToFileSystem(model: allModel)
let dataUpdated = Notification.Name("HomeSimilarVideoResourceUpdate") // let dataUpdated = Notification.Name("HomeSimilarVideoResourceUpdate")
NotificationCenter.default.post(name: dataUpdated, object: nil) // NotificationCenter.default.post(name: dataUpdated, object: nil)
}) // })
Print("处理相似视频结束") // Print("处理相似视频结束")
} // }
} // }
// 照片数据 // 照片数据
PhotoAndVideoMananger.mananger.dealImageAssetData { data in PhotoAndVideoMananger.mananger.dealImageAssetData { data in
...@@ -358,7 +358,7 @@ class HomePhotosModel:Codable { ...@@ -358,7 +358,7 @@ class HomePhotosModel:Codable {
} }
class AssetModel :Codable { class AssetModel :Codable,Hashable {
var localIdentifier : String var localIdentifier : String
var assetSize : Double var assetSize : Double
var createDate : Date var createDate : Date
...@@ -367,6 +367,18 @@ class AssetModel :Codable { ...@@ -367,6 +367,18 @@ class AssetModel :Codable {
self.assetSize = assetSize self.assetSize = assetSize
self.createDate = createDate self.createDate = createDate
} }
func hash(into hasher: inout Hasher) {
hasher.combine(localIdentifier)
hasher.combine(assetSize)
hasher.combine(createDate)
}
static func ==(lhs: AssetModel, rhs: AssetModel) -> Bool {
return lhs.localIdentifier == rhs.localIdentifier &&
lhs.assetSize == rhs.assetSize &&
lhs.createDate == rhs.createDate
}
} }
......
...@@ -26,7 +26,7 @@ class HomeOtherCollectionCell: UICollectionViewCell { ...@@ -26,7 +26,7 @@ class HomeOtherCollectionCell: UICollectionViewCell {
let iv = UIView() let iv = UIView()
iv.clipsToBounds = true iv.clipsToBounds = true
iv.layer.cornerRadius = 8 iv.layer.cornerRadius = 8
iv.backgroundColor = UIColor(red: 0, green: 0, blue: 0, alpha: 0.2000) iv.backgroundColor = UIColor(red: 0, green: 0, blue: 0, alpha: 0.4)
return iv return iv
}() }()
...@@ -34,15 +34,15 @@ class HomeOtherCollectionCell: UICollectionViewCell { ...@@ -34,15 +34,15 @@ class HomeOtherCollectionCell: UICollectionViewCell {
public var countLabel: UILabel = { public var countLabel: UILabel = {
let label = UILabel() let label = UILabel()
label.textColor = .white label.textColor = .white
label.font = .systemFont(ofSize: 10, weight: .medium) label.font = .systemFont(ofSize: 14, weight: .medium)
label.textAlignment = .left label.textAlignment = .left
return label return label
}() }()
let sizeLabel: UILabel = { let sizeLabel: UILabel = {
let label = UILabel() let label = UILabel()
label.textColor = UIColor(red: 0.6, green: 0.8, blue: 1, alpha: 1) label.textColor = .white
label.font = .systemFont(ofSize: 8, weight: .regular) label.font = .systemFont(ofSize: 10, weight: .medium)
label.textAlignment = .left label.textAlignment = .left
return label return label
}() }()
...@@ -201,7 +201,6 @@ class HomeOtherCollectionCell: UICollectionViewCell { ...@@ -201,7 +201,6 @@ class HomeOtherCollectionCell: UICollectionViewCell {
imageView.snp.makeConstraints { make in imageView.snp.makeConstraints { make in
make.top.equalTo(self.titleLabel.snp.bottom).offset(8) make.top.equalTo(self.titleLabel.snp.bottom).offset(8)
// make.bottom.equalToSuperview().offset(-16)
make.left.equalToSuperview().offset(16) make.left.equalToSuperview().offset(16)
make.width.equalToSuperview().offset(-32) make.width.equalToSuperview().offset(-32)
make.height.equalTo(self.width - 32) make.height.equalTo(self.width - 32)
...@@ -226,13 +225,11 @@ class HomeOtherCollectionCell: UICollectionViewCell { ...@@ -226,13 +225,11 @@ class HomeOtherCollectionCell: UICollectionViewCell {
self.countLabel.snp.makeConstraints { make in self.countLabel.snp.makeConstraints { make in
make.left.equalToSuperview().offset(12) make.left.equalToSuperview().offset(12)
make.top.equalToSuperview().offset(3) make.top.equalToSuperview().offset(3)
make.width.equalTo(68)
make.height.equalTo(20) make.height.equalTo(20)
} }
self.sizeLabel.snp.makeConstraints { make in self.sizeLabel.snp.makeConstraints { make in
make.left.equalToSuperview().offset(12) make.left.equalToSuperview().offset(12)
make.top.equalTo(countLabel.snp.bottom).offset(0) make.top.equalTo(countLabel.snp.bottom).offset(-2)
make.width.equalTo(68)
make.height.equalTo(14) make.height.equalTo(14)
} }
self.moreImageView.snp.makeConstraints { make in self.moreImageView.snp.makeConstraints { make in
......
...@@ -26,7 +26,6 @@ class PMShowVideoCell: UICollectionViewCell { ...@@ -26,7 +26,6 @@ class PMShowVideoCell: UICollectionViewCell {
} }
if let url = url { if let url = url {
player.playVideo(from: url) player.playVideo(from: url)
player.pause()
} }
} }
......
...@@ -100,7 +100,6 @@ class SecretSetViewController: BaseViewController, UITextFieldDelegate { ...@@ -100,7 +100,6 @@ class SecretSetViewController: BaseViewController, UITextFieldDelegate {
} }
return return
} }
UserDefaults.standard.set("", forKey: SecretViewController.psKey)
let alert = UIAlertController(title: nil, message: "Unlocked", preferredStyle: .alert) let alert = UIAlertController(title: nil, message: "Unlocked", preferredStyle: .alert)
self.present(alert, animated: true) self.present(alert, animated: true)
DispatchQueue.main.asyncAfter(deadline: .now() + 1.5) { DispatchQueue.main.asyncAfter(deadline: .now() + 1.5) {
......
...@@ -1042,69 +1042,137 @@ class PhotoAndVideoMananger { ...@@ -1042,69 +1042,137 @@ class PhotoAndVideoMananger {
} }
// func groupSimilarImages(assets: [PHAsset], progressCompletion: @escaping ([[AssetModel]]) -> Void, completion: @escaping ([[AssetModel]]) -> Void) {
// print("开始处理相似图片")
// DispatchQueue.global().async {
// print("进入异步任务处理相似图片")
//
// var assetModels: [AssetModel] = []
// var hashes: [String: AssetModel] = [:]
// var groupedImages: [[AssetModel]] = []
// let dispatchGroup = DispatchGroup()
//
// for asset in assets {
// // 创建 AssetModel
// let createDate = asset.creationDate ?? Date()
// let model = AssetModel(localIdentifier: asset.localIdentifier, assetSize: self.findAssetSize(asset: asset), createDate: createDate)
// assetModels.append(model)
//
// // 请求图像
// dispatchGroup.enter()
// PHImageManager.default().requestImage(for: asset, targetSize: CGSize(width: 32, height: 32), contentMode: .aspectFit, options: nil) { (image, _) in
// if let image = image {
// let hash = self.calculateImageHashUsingCoreImage(image)
// if !hash.isEmpty {
// hashes[hash] = model
// }
// }
// dispatchGroup.leave()
// }
// }
//
// // 等待所有请求完成后进行比较
// dispatchGroup.notify(queue: .global()) {
// print("获取到全部hash值")
//
// var usedHashes: Set<String> = []
// for (hash1, model1) in hashes {
// if usedHashes.contains(hash1) { continue }
// var similarModels: [AssetModel] = [model1]
// usedHashes.insert(hash1)
//
// for (hash2, model2) in hashes {
// if usedHashes.contains(hash2) { continue }
// let distance = self.hammingDistance(hash1, hash2)
// if distance < self.hashDistance { // 可以根据需求调整阈值
// similarModels.append(model2)
// usedHashes.insert(hash2)
// }
// }
//
// if similarModels.count >= 2 {
// groupedImages.append(similarModels)
// // 每次找到新的相似组,通过 progressCompletion 回调返回当前已处理好的分组数据
// print("判断相似", similarModels)
// DispatchQueue.main.async {
// progressCompletion(groupedImages)
// }
// }
// }
//
// DispatchQueue.main.async {
// completion(groupedImages)
// }
// }
// }
// }
func groupSimilarImages(assets: [PHAsset], progressCompletion: @escaping ([[AssetModel]]) -> Void, completion: @escaping ([[AssetModel]]) -> Void) { func groupSimilarImages(assets: [PHAsset], progressCompletion: @escaping ([[AssetModel]]) -> Void, completion: @escaping ([[AssetModel]]) -> Void) {
print("开始处理相似图片") print("开始处理相似图片")
DispatchQueue.global().async { DispatchQueue.global().async {
print("进入异步任务处理相似图片") print("进入异步任务处理相似图片")
var assetModels: [AssetModel] = []
var hashes: [String: AssetModel] = [:]
var groupedImages: [[AssetModel]] = [] var groupedImages: [[AssetModel]] = []
let dispatchGroup = DispatchGroup() var hashes: [String: AssetModel] = [:]
let semaphore = DispatchSemaphore(value: 1)
var lastProgressUpdateTime = Date()
let progressUpdateInterval: TimeInterval = 1.0 // 每隔 1 秒更新一次 UI
for asset in assets { for asset in assets {
// 创建 AssetModel // 创建 AssetModel
let createDate = asset.creationDate ?? Date() let createDate = asset.creationDate ?? Date()
let model = AssetModel(localIdentifier: asset.localIdentifier, assetSize: self.findAssetSize(asset: asset), createDate: createDate) let model = AssetModel(localIdentifier: asset.localIdentifier, assetSize: self.findAssetSize(asset: asset), createDate: createDate)
assetModels.append(model)
// 请求图像 // 请求图像
dispatchGroup.enter()
PHImageManager.default().requestImage(for: asset, targetSize: CGSize(width: 32, height: 32), contentMode: .aspectFit, options: nil) { (image, _) in PHImageManager.default().requestImage(for: asset, targetSize: CGSize(width: 32, height: 32), contentMode: .aspectFit, options: nil) { (image, _) in
if let image = image { if let image = image {
let hash = self.calculateImageHashUsingCoreImage(image) let hash = self.calculateImageHashUsingCoreImage(image)
if !hash.isEmpty { if !hash.isEmpty {
semaphore.wait()
hashes[hash] = model hashes[hash] = model
}
}
dispatchGroup.leave()
}
}
// 等待所有请求完成后进行比较
dispatchGroup.notify(queue: .global()) {
print("获取到全部hash值")
var usedHashes: Set<String> = [] var similarModels: [AssetModel] = [model]
for (hash1, model1) in hashes { var usedHashes: Set<String> = [hash]
if usedHashes.contains(hash1) { continue }
var similarModels: [AssetModel] = [model1]
usedHashes.insert(hash1)
for (hash2, model2) in hashes { for (existingHash, existingModel) in hashes {
if usedHashes.contains(hash2) { continue } if usedHashes.contains(existingHash) { continue }
let distance = self.hammingDistance(hash1, hash2) let distance = self.hammingDistance(hash, existingHash)
if distance < self.hashDistance { // 可以根据需求调整阈值 if distance < self.hashDistance { // 可以根据需求调整阈值
similarModels.append(model2) similarModels.append(existingModel)
usedHashes.insert(hash2) usedHashes.insert(existingHash)
} }
} }
if similarModels.count >= 2 { if similarModels.count >= 2 {
var foundGroupIndex: Int? = nil
for (index, group) in groupedImages.enumerated() {
if !Set(group.map { $0.localIdentifier }).isDisjoint(with: Set(similarModels.map { $0.localIdentifier })) {
foundGroupIndex = index
break
}
}
if let index = foundGroupIndex {
groupedImages[index] = Array(Set(groupedImages[index] + similarModels))
} else {
groupedImages.append(similarModels) groupedImages.append(similarModels)
// 每次找到新的相似组,通过 progressCompletion 回调返回当前已处理好的分组数据 }
print("判断相似", similarModels) // 控制 UI 刷新频率
let currentTime = Date()
if currentTime.timeIntervalSince(lastProgressUpdateTime) >= progressUpdateInterval {
lastProgressUpdateTime = currentTime
DispatchQueue.main.async { DispatchQueue.main.async {
progressCompletion(groupedImages) progressCompletion(groupedImages)
} }
} }
} }
semaphore.signal()
DispatchQueue.main.async { }
completion(groupedImages)
} }
} }
} }
completion(groupedImages)
}
} }
} }
......
//
// SystemCommentManager.swift
// PhoneManager
//
// Created by edy on 2025/4/29.
//
import Foundation
class SystemCommentManager {
// 记录评价时间
private static let SHOW_COMMENT_DATE = "showCommentDate"
// 当天是否评价
private static let SHOW_COMMENT_IN_CURRENT_DAY = "showCommentInCurrentDay"
/// 弹窗评论
class func showCommentPage(){
if let date = UserDefaults.standard.object(forKey: SHOW_COMMENT_DATE){
// 如果是有时间,判断和当前时间是不是一致的,如果是一致
let calendar = Calendar.current
let isSameDay = calendar.isDate(date as! Date, inSameDayAs: Date())
if !isSameDay {
initCommentInfoInDisk()
}
}else{
initCommentInfoInDisk()
}
// 首先是免费三次机会用完之后,第四次点击广告,在结果页点击棒极了(删除成功,且loading页面消失)
if AdvManager.shared.defaultFreeTimes == 0 {
// 判断当天有没有被触发过
if let isCommentInCurrentDay = UserDefaults.standard.object(forKey: SHOW_COMMENT_IN_CURRENT_DAY){
let temp : Bool = isCommentInCurrentDay as! Bool
if !temp {
showAction()
}
}else{
showAction()
}
}
}
/// 显示评价弹窗操作
private class func showAction(){
DispatchQueue.main.async {
CustomRate().show()
}
UserDefaults.standard.set(true, forKey: SHOW_COMMENT_IN_CURRENT_DAY)
UserDefaults.standard.set(Date(), forKey: SHOW_COMMENT_DATE)
}
/// 初始化评价的基础信息
private class func initCommentInfoInDisk(){
UserDefaults.standard.set(false, forKey: SHOW_COMMENT_IN_CURRENT_DAY)
UserDefaults.standard.set(Date(), forKey: SHOW_COMMENT_DATE)
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment