草庐IT

swift_FORCE_LOAD

全部标签

ios - 如何在 iOS swift 运行时更新 CAGradientLayer 颜色?

我正在使用UIView扩展将渐变层应用到UIView。我需要在滚动tableview时更改运行时的渐变颜色。我使用scrollviewcontentoffset值来更新渐变颜色。我尝试了什么:我试图从superlayer中删除该层并创建一个具有新颜色的新渐变层。但是应用程序出现内存问题并且UI有时会卡住。是否可以在运行时更新CAGradientLayer渐变颜色?extensionUIView{funcapplyGradient(withColourscolours:[UIColor],gradientOrientationorientation:GradientOrientation

swift - 在swift中按两个值对字典进行排序

我有这样的字典:["FLBEY023":["Position":8,"Page":1],"COSMAX826":["Position":6,"Page":2],"TOVIC029":["Position":7,"Page":1],"CGLYN188":["Position":2,"Page":2],"TOORL002B":["Position":1,"Page":2],"GSTOGFU096":["Position":6,"Page":1],"COSNAI423":["Position":2,"Page":1],"COSCOL681":["Position":3,"Page":2],"

objective-c - Objective-C 和 Swift 中 URL 编码方法的不一致

我有以下Objective-C代码:[@"http://www.google.com"stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSetURLPathAllowedCharacterSet]];//http%3A//www.google.com然而,在Swift中:"http://www.google.com".addingPercentEncoding(withAllowedCharacters:.urlPathAllowed)//http://www.google.com我可以将这种差异归因于什么?.

swift - iOS : A specific function can be called from multiple threads/places, 但我希望每次调用都在队列中执行

我有一个函数readData从HealthKit读取数据,需要几秒钟才能执行。可以从多个线程/位置调用此函数,但我希望每次调用都在一个队列中执行,一次一个,而不是并行执行。有没有一种简单的方法可以使用GCD或OperationQueues在SwiftforiOS中实现这一点? 最佳答案 是的,串行DispatchQueue应该可以解决您的问题。确保您在需要访问它的每个函数都可以访问它的范围内创建它。letserialQueue=DispatchQueue(label:"serialQueue")serialQueue.async{/

swift - 在 Swift3 中没有更多上下文的表达式类型不明确

在我尝试升级到最新Swift版本的项目的这部分代码中,我收到“Typeofexpressionisambiguouswithoutmorecontext”。我似乎无法弄清楚。我尝试了不同的方法,但无法正常工作。问题出在这一行的语法上:varsec=Int64(0.001*Double(NSEC_PER_SEC))lettime=DispatchTime.now()+.seconds(sec)编译器指出加法(+)DsipatchTime.now()到.seconds(sec) 最佳答案 DispatchTimeInterval有一个c

arrays - Swift:为什么创建空白数组时需要空括号?

为什么定义一个空白数组后需要括号“()”?例如:letemptyArray=[String]()但是当你使用一个带有预定义值的数组时,它就不需要它们了?letpopulatedArray=["Hello","question"] 最佳答案 您正在调用初始化程序,这类似于:letobject=MyObject()或letstring=String()也可以写成letarray=Array()当您使用预定义值时,类型是从数组项的类型中推断出来的。对于空数组,没有任何项,因此必须明确指定类型。另一种方法是:letarray:[String

ios - Swift 线程安全计数器变量?用于跟踪何时删除网络事件指示器

我的场景的快速解释:我有一个iOS应用程序,可以使用不同线程同时执行大量网络调用。在我的iOS应用程序中,我想在发生任何网络事件时显示内置的(在状态栏上)网络事件指示器。所以我所做的是在任何网络调用之前启动事件指示器,然后在该网络调用出错或成功完成后停止它。发生的事情(显然)是,一旦一个网络事件操作成功(或错误)完成,它就会删除网络事件指示器,即使我知道其他网络事件正在发生。所以我的解决方案是创建一个静态变量(因为有很多类执行网络事件),它跟踪当前正在执行的网络请求数量(每次启动时递增此静态变量,然后在它们启动时递减此静态变量完成(成功或失败),仅当此计数器达到0时才会关闭网络事件指示

swift - Swift 通用协议(protocol)注入(inject)可能吗?

我正在尝试使用通用协议(protocol)并注入(inject)具体实现,但出现以下错误:Protocol'Repo'canonlybeusedasagenericconstraintbecauseithasSelforassociatedtyperequirementsat让repo:repo我的代码protocolRepo{associatedtypeTfuncdoSomething()->T}classMyRepo:Repo{funcdoSomething()->String{return"hi"}}classSomeClass{letrepo:Repoinit(repo:Rep

swift - 覆盖注释

您好,我正在尝试在我的注释周围创建一个叠加层,例如苹果提醒应用程序,我已经创建了一个MKCircle对象,我认为我应该使用它来显示叠加层,但是如何将我的MKCircle对象转换为MKOVerlay对象?也许有更好的方法来添加注释?我是swift和编程的新手。有什么建议么? 最佳答案 MKCircle是一个MKOverlay对象。您只需将其添加为叠加层即可:letcircle=MKCircle(center:coordinate,radius:1000)mapView.add(circle)当然,你必须通过实现mapView(_:re

swift - 使用包含链接的默认正文打开 iMessage

我正在尝试使用来self的应用程序的默认消息打开iMessage应用程序。默认消息包含指向应用程序商店中应用程序的链接。这是用户邀请人们下载应用程序的一种方式。用户输入一个数字,然后点击提交按钮,然后它会打开带有该数字和重新填充的消息的iMessage应用程序。但是,出于某种原因,Swift不会生成URL。这是我的东西letbody="DownloadSomeAppbyclickingthelinkbelow:\n\nhttps://appsto.re/us/someapp.i"guardletphoneUrl=URL(string:"sms:\(numberTextField.tex