草庐IT

swift_FORCE_LOAD

全部标签

swift - 如何使用通用默认参数

这是我的代码:classPerson{init(raw:T=Child.johnDoe){}}enumChild:String{casejohnDoe}它不编译。错误是:Defaultargumentvalueoftype'Child'cannotbeconvertedtotype'T'为什么不能转换?根据docs,Child.someEnum是RawRepresentable:EnumerationswithRawValuesForanyenumerationwithastring,integer,orfloating-pointrawtype,theSwiftcompileraut

arrays - 在 Swift 中访问数组中的项目时遇到问题

letarrayOfDwarfArrays=[["Sleepy","Grumpy","Doc"],["Thorin","Nori"]]vardwarfArray:[String]=[]fordwarfNameinarrayOfDwarfArrays{dwarfArray.append(dwarfName)}我要做的就是访问原始数组的值并将它们附加到一个新的单个数组。但我不断收到此错误:无法将“[String]”类型的值转换为预期的参数类型“String”用最简单的话来说,我做错了什么? 最佳答案 Array.append(_:)需要

swift - 设置 Firestore 文档时如何检测网络连接缺失

我们正在使用Firestore构建一个实时聊天应用。我们需要处理没有互联网连接的情况。基本消息发送代码如下所示letnewMsgRef=database.document(“/users/\(userId)/messages/\(docId)“)newMsgRef.setData(payload){errinifleterror=err{//handleerror}else{//handleOK}}连接设备后,一切正常。当设备未连接时,回调不会被调用,我们也不会得到错误状态。当设备重新上线时,记录会出现在数据库中并触发回调,但是这种解决方案对我们来说是NotAcceptable,因为在

ios - 使用 AudioMixInputParameters AVFoundation 为每个视频轨道设置多个音量在 Swift iOS 中不起作用

我正在Swift中开发基于Video的Application。根据要求,我必须从DeviceGallery中选择多个Videos,设置不同的CIFilter效果和Volume对于每个VideoAsset,然后合并所有Videos并且必须保存FinalVideo。作为输出,当我播放FinalVideo时,Video声音volume应该相应地改变。我已经将所有选定的VideoAssets合并到一个具有不同CIFilter效果的文件中,但我的问题是当我尝试设置Volume对于每个VideoClips然后它不工作。我正在为我的FinalVideo使用默认的Volume。这是我的代码:funca

swift - 为什么我的特殊 Codable 协议(protocol)与 Swift 的 Codable with Array 的工作方式不同?

使用Codable,我可以创建以下扩展extensionDecodable{publicstaticfuncdecode(data:Data,decoder:JSONDecoder=.default)->Self?{do{returntrydecoder.decode(self,from:data)}catchleterrorasNSError{CodableKit.log(message:"\(error.userInfo)")returnnil}}}并将其用于单个对象和数组类型,例如letperson=Person.decode(data:personData)//singlele

swift - 为什么从 Float 转换而来的 CGFloat 不表现出 CGFloat 行为?

我有一个简单的例子,我尝试画一个圆。下面这段代码没有给我一个圆圈。importUIKitclassPlayingCardView:UIView{overridefuncdraw(_rect:CGRect){ifletcontext=UIGraphicsGetCurrentContext(){context.addArc(center:CGPoint(x:bounds.midX,y:bounds.midY),radius:100.0,startAngle:0,endAngle:CGFloat(2.0*Float.pi),clockwise:true)context.setLineWidt

swift - ARKit——为什么没有 'ARPlaneDetection' 枚举了?

为什么Apple的软件工程师确实删除了ARPlaneDetectionenum并制作了ARWorldTrackingConfiguration.PlaneDetectionstruct?是:publicenumARPlaneDetection:UInt{case.nonecase.horizontal}现在:publicstructPlaneDetection:OptionSet{publicinit(rawValue:UInt)publicvarhorizontal:ARWorldTrackingConfiguration.PlaneDetection{get}publicvarve

swift - 如何使用全局结构进行单元测试?

我很清楚在单元测试中你生成输入属性将此属性传递给您要测试的方法将结果与您的预期结果进行比较但是,如果您有一个全局结构,例如游戏经验值和游戏关卡有私有(private)setter,不能修改。当应用程序启动时,我会自动从UserDefaults加载这些数据。当您无法更改输入时,如何测试访问该全局结构的方法?例子:importUIKit//GlobalstructwithprivatedatastructGameStatus{private(set)staticvarxp:Int=0private(set)staticvarlevel:Int=0///Holdsallwinningstat

swift - 如何在元组上定义后缀运算符?

我有以下代码:postfixoperator^^^publicpostfixfunc^^^(lhs:Int)->Int{return0}publicpostfixfunc^^^(lhs:(T,T))->[T]{return[lhs.0,lhs.1]}funcgo(){1^^^//thisworks(0,0)^^^//error:Unaryoperator'^^^'cannotbeappliedtoanoperandoftype'(Int,Int)'}我得到的错误是,一元运算符'^^^'不能应用于'(Int,Int)'类型的操作数。有什么解决办法吗? 最佳答案

swift - 将 Swift 类标记为 final 是否也会使所有包含的 var、let 和函数自动获得 Static Dispatch 的好处?

我正试图从我的应用程序中榨取最后一点性能。我尝试尽可能在类上使用Structs(没有状态共享,默认情况下直接分派(dispatch)等等)。但是我的ViewController和UIView对象显然仍然是类。出于性能原因,我想对我的每一个方法和数据成员强制执行直接调度。我是否还需要在我的类(class)中标记每个var、let和funcfinal,或者是是否足以将托管类标记为最终类,以便其下的所有内容都可以利用直接方法分派(dispatch)?换句话说:在每个方法和变量之前都粘贴final非常乏味。所以我希望将它放在类(class)本身上具有强制直接dispatch所有类(class)