草庐IT

Swift-Mailer

全部标签

swift - 如何在后台线程中使用 DispatchGroup?

我有两个函数(或任务),我想一个接一个地运行,我正在使用DispatchGroup来跟踪它们并在它们完成时通知我。现在它们正在主线程中完成,但我想在后台线程中运行这些任务。我将如何去做呢?我尝试了几种方法,但它们要么同时运行,要么在第一个方法完成后出现异常错误。下面的代码一个接一个地执行任务,但是如果我在函数内部调用Thread.current,我可以看到它们正在主线程中运行。@objcfuncdoWorkFunctions(){taskGroup.enter()DispatchQueue.global(qos:.background).sync{self.firstFunction{

swift - 如何在运行时将 CIFilter 添加到视频

我使用avfoundation录制了一段视频,点击视频后它开始在新的ViewController上播放。问题是,我无法为正在播放的视频添加滤镜效果。以下是我所取得的成就的代码。importUIKitimportAVFoundationclassVideoPlayback:UIViewController{letavPlayer=AVPlayer()varavPlayerLayer:AVPlayerLayer!varvideoURL:URL!@IBOutletweakvarvideoView:UIView!overridefuncviewDidLoad(){super.viewDidLo

swift - 快速将一个数字与超过 10 位数字相乘

我想执行如下所示的乘法:leta=10letb=a*(1e+9)我怎样才能做到这一点??乘法后,如何以这种格式显示结果?像b=1e+10 最佳答案 当你使用科学记数法声明一个数字字面量时,它的类型被推断为Double,所以你需要将它转换为Int才能相乘Int与您的数字文字(或者如果您确实期望Double结果,则相反)。还要确保科学记数法中没有空格(您也可以省略+)。letten=10letmultiplied=ten*Int(1e+9)如果科学文字实际上是Double,请将Int转换为Double,而不是相反:letone=Doub

ios - 制作自定义形状 imageview ios swift 4.2

我是ios的新手。我正在尝试将ImageView的底部边框(不是整个底部的左侧或右侧)制作成曲线。任何人都可以指导我如何去做。Hereistheimageoftheborderiwanttoacheive: 最佳答案 你可以这样做:funccurvedShapeFor(view:UIImageView,curvedPercent:CGFloat)->UIBezierPath{letpath=UIBezierPath()path.move(to:CGPoint(x:0,y:0))path.addLine(to:CGPoint(x:vi

json - 如何动态地将属性添加到 Swift 中的常量 Decodable 对象?

背景基本上我有一个api返回这样的东西:"order_detail":[{"id":6938,"order_id":6404,"item_price":"4",.."item":{"id":12644,"ref":"IcedCaffeAmericano","short_description":"",..在我的可解码对象中我得到了这个publicstructOrderDetail:Decodable{publicletid:Intpublicletorder_id:Intpublicletitem_price:String?..publicletitem:Item?和publicstr

swift - 让委托(delegate)在主线程以外的地方运行

我通常想知道如何让swift委托(delegate)在主线程以外的专用线程中运行。更具体地说,我目前正在使用HueSDK4EDK建立我的应用程序与Hue网桥的连接。该过程的一部分是定义状态观察者和连接观察者(作为委托(delegate))来处理传入的事件。privatefuncbuildBridge(withBridgebridge:BridgeInfoModel)->PHSBridge{returnPHSBridge.init(block:{(builder)in...builder?.bridgeConnectionObserver=selfbuilder?.add(self)},

swift 4 Codable - 如果有字符串或字典如何解码?

我有这样的结构:structOrderLine:Codable{letabsUrl:String?letrestApiUrl:String?letdescription:String?letquantity:Int?letsubscription:Subs?lettotal:Double?}structSubs:Codable{letquantity:Int?letname:String?}一些OrderLine在服务器响应中有"subscription":{"quantity":6,"name":"3Months"},但有时它有String类型:"subscription":"",没

swift - 为什么子协议(protocol)不符合其父协议(protocol)?

这个问题在这里已经有了答案:Whycan'taget-onlypropertyrequirementinaprotocolbesatisfiedbyapropertywhichconforms?(3个答案)关闭3年前。我有符合协议(protocol)的结构,但使用的是派生协议(protocol),而不是直接使用其父协议(protocol):protocolA{}protocolB:A{}protocolC{varproperty:A{get}}structFoo:C{letproperty:A}structBar:C{letproperty:B}//Error:Type'Bar'doe

ios - 向后滑动添加 Action swift 4

我已将我的一个ViewController中导航栏中的后退按钮更改为自定义按钮,并为该按钮提供了按下时要执行的操作:self.navigationItem.hidesBackButton=trueletbackButton=UIBarButtonItem(image:UIImage(named:"backArrow"),style:.plain,target:self,action:#selector(self.back))self.navigationItem.leftBarButtonItem=backButton这非常有效,我能够通过使用以下方式保持向后滑动以弹出ViewCont

swift - 值类型在多线程中真的安全吗?

Apple说“如果你使用值类型,你可以安全地跨线程传递值的副本而无需同步。”。但是我最近看到并发崩溃与苹果指南不一致。我看到了https://developer.apple.com/swift/blog/?id=10苹果的指南说“值类型在多线程中是安全的”所以我认为“值类型是原子的!”但最近我在下面的代码中看到并发崩溃。classClassB:NSObject{funcreadSomeValue(){print(classA.someValue)}letclassA=ClassA()}classClassA:NSObject{private(set)varsomeValue:Struc